Skip to main content

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.

Author

pyqtdeploy is copyright (c) Riverbank Computing Limited. Its homepage is https://www.riverbankcomputing.com/software/pyqtdeploy/.

Support may be obtained from the PyQt mailing list at https://www.riverbankcomputing.com/mailman/listinfo/pyqt

License

pyqtdeploy is released under the BSD license.

Installation

pyqtdeploy can be dowloaded an installed from PyPI:

pip install pyqtdeploy

Documentation

The documentation for the latest release can be found here.

Release files for pyqtdeploy 3.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyqtdeploy 3.3.0
File Size Uploaded
pyqtdeploy-3.3.0.tar.gz 3.7 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyqtdeploy 3.3.0
File Interpreter ABI Platform
pyqtdeploy-3.3.0-py3-none-any.whl Python 3 none any Details

Total release size:4.2 MB

Release files / pyqtdeploy-3.3.0.tar.gz

Download URL pyqtdeploy-3.3.0.tar.gz
Size 3.7 MB
Tags Source
SHA-256 checksum
How to use checksums
f2802707cca6d38672b3b8f0f3f373f40b2a6b892c0dd1d613ca1e670d10e98b
BLAKE2b-256 checksum
How to use checksums
44d4978017382f0ecc48601944c3fc0f58a5c5075a1d3acd48d09c11ee471b05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/57.0.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.0

Release files / pyqtdeploy-3.3.0-py3-none-any.whl

Download URL pyqtdeploy-3.3.0-py3-none-any.whl
Size 495.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf24e2260919c81af45eb7b7bef6259a89fc12ddcbf1203d74844d7a45ea50c1
BLAKE2b-256 checksum
How to use checksums
f8fcd458617b0c7f1b5f705c1518d8baefdd85b6ee4dff3f37afe619440eaa56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/57.0.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.0

Release history Release notifications | RSS feed

This release

3.3.0 This release

2 release files

3.2.0

2 release files

3.1.2

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.0

1 release file

2.5.1

2 release files

2.5.0

2 release files

2.4

2 release files

2.3.1

2 release files

2.3

2 release files

2.2

2 release files

2.1

2 release files

2.0.1

2 release files

2.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3

2 release files

1.2.1

2 release files

1.2

2 release files

1.1

2 release files

1.0.1

2 release files

1.0

2 release files

0.10

2 release files

0.9

2 release files

0.8

2 release files

0.7

2 release files

0.6

2 release files

0.5

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page