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.

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.

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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file pyqtdeploy-3.3.0.tar.gz.

File metadata

  • Download URL: pyqtdeploy-3.3.0.tar.gz
  • Upload date:
  • Size: 3.7 MB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for pyqtdeploy-3.3.0.tar.gz
Algorithm Hash digest
SHA256 f2802707cca6d38672b3b8f0f3f373f40b2a6b892c0dd1d613ca1e670d10e98b
MD5 23e8a6f0f212be6efc01b8976bef475e
BLAKE2b-256 44d4978017382f0ecc48601944c3fc0f58a5c5075a1d3acd48d09c11ee471b05

See more details on using hashes here.

File details

Details for the file pyqtdeploy-3.3.0-py3-none-any.whl.

File metadata

  • Download URL: pyqtdeploy-3.3.0-py3-none-any.whl
  • Upload date:
  • Size: 495.2 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for pyqtdeploy-3.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bf24e2260919c81af45eb7b7bef6259a89fc12ddcbf1203d74844d7a45ea50c1
MD5 9a83f295c3b9749c2a8813d3fbed8d02
BLAKE2b-256 f8fcd458617b0c7f1b5f705c1518d8baefdd85b6ee4dff3f37afe619440eaa56

See more details on using hashes here.

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