pyqtdeploy - A Tool for Deploying PyQt Applications
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 <https://www.riverbankcomputing.com/static/Docs/pyqtdeploy/>__.