PJ-Finlay / pyqtdeploy

Mirror of pyqtdeploy with dependencies included in the demo directory

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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/>`__.

About

Mirror of pyqtdeploy with dependencies included in the demo directory