Skip to main content

PyQt Application Deployment Tool

Project description

What is pyqtdeploy?

pyqtdeploy is a tool that, in conjunction with other tools provided with Qt, enables the deployment of PyQt applications written with Python v3.5 or later. It supports deployment to desktop platforms (Linux, Windows and macOS) and to mobile platforms (iOS and Android). Its design is heavily influenced by the need to support mobile platforms and cross-compilation.

An application being deployed is built from the application’s source code and a number of external parts. A part is a pure Python module or an extension module and is provided by a component. A component is implemented as a plugin written in Python. pyqtdeploy includes plugins for common components including, for example, PyQt, OpenSSL and the Python standard library.

All external parts are installed in a system root directory or sysroot. The contents of a sysroot, ie. the components and how each is configured, is defined by a sysroot.toml file. This file is created and maintained by hand. While each application being deployed must have an associated sysroot, a single sysroot may provide the parts for multiple applications. The first of deploying an application is to specify an appropriate sysroot.toml file (but it is not necessary to build the corresponding target-specific sysroot directory at this point).

pyqtdeploy comprises three different executables: pyqtdeploy-sysroot, pyqtdeploy-build and pyqtdeploy itself.

pyqtdeploy-sysroot is a command line tool that creates a target-specific sysroot directory using a sysroot.toml file. It will download, configure and build the parts specified by each component.

pyqtdeploy is a GUI tool that is used to specify the type and structure of the application being deployed and the sysroot parts that it is dependent on. This information is stored in an application-specific project file (that has a .pdt extension).

pyqtdeploy-build is a command line tool that takes the project file and creates all the necessary files to build the deployed application. It works by taking the individual modules of an application, freezing them, and then placing them in a Qt resource file that is converted to C++ code by Qt’s rcc tool. Python’s standard library is handled in the same way. It also generates a simple C++ wrapper around the Python interpreter library that uses the Python import mechanism to enable access to the embedded frozen modules in a similar way that Python supports the packaging of modules in zip files. Finally it generates a Qt .pro file that describes all the generated C++ code. From this Qt’s qmake tool is used to generate a platform-specific Makefile which will then generate a single executable. Further Qt and/or platform specific tools can then be used to convert the executable to a platform specific deployable package.


pyqtdeploy is copyright (c) Riverbank Computing Limited. Its homepage is

Support may be obtained from the PyQt mailing list at


pyqtdeploy is released under the BSD license.


pyqtdeploy can be dowloaded an installed from PyPI:

pip install pyqtdeploy


The documentation for the latest release can be found here.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyqtdeploy-3.3.0.tar.gz (3.7 MB view hashes)

Uploaded Source

Built Distribution

pyqtdeploy-3.3.0-py3-none-any.whl (495.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page