PyQt is a set of Python v2 and v3 bindings for The Qt Company's Qt application framework. The application runs on all platforms supported by Qt, including Mac OS X and iOS. The bindings are implemented as a set of Python modules and contain over 1,000 classes.
PyQt4 Licensing
PyQt4 is available under two main types of license. In simple terms, you need a PyQt4 license that matches your Qt license.
GPL (version 2 or 3)
Platforms: Windows, UNIX, Linux, Mac OS X
Your application must be released under a license that is compatible with the GPL.
Commercial License
Platforms: Windows, UNIX, Linux, Mac OS X
Your application may be released under any license you choose, except pure GPL. If you choose GPL, you must add to license statement special exception clause to permit linking to non-free library, since Qt is not a part of operating system (by the means of FSF) and is not free by itself.
Older Licenses
Earlier versions of PyQt (version 3, for example) were available under a wider range of licenses (described below) which were closely modelled on the licenses used for Qt itself.
GPL (version 2)
Platforms: UNIX, Linux, Mac OS X
Your application must be released under a license that is compatible with the GPL.
Commercial License
- PyQt GUI Programming Tutorial. PyQt is a module to make desktop software with Python. This works on all desktop systems including Mac OS X, Windows and Linux. If you want to make desktop apps with Python, PyQt is the module you need to make them. After creating your app, you can create an installation program with fbs.
- Learn how to create Python GUIs for Windows, Mac and Linux with this hands-on PyQt5 tutorial. Build professional applications with PyQt5/PySide2 & Python 3.
Platforms: Windows, UNIX, Linux, Mac OS X
Your application may be released under any license you choose, except pure GPL. If you choose GPL, you must add to license statement special exception clause to permit linking to non-free library, since Qt is not a part of operating system (by the means of FSF) and is not free by itself (the only free version is for X11 and Mac OS X).
Evaluation License
Platforms: Windows
This version of PyQt is to be used with the evaluation version of Qt. You may not release applications using this combination of PyQt and Qt.
Non-commercial License
Platforms: Windows
This version of PyQt is to be used with the non-commercial version of Qt based on Qt v2.3.0. Your application must be released under a license that is compatible with the Qt Non-commercial license.
Educational License
Platforms: Windows
This version of PyQt is to be used with the educational version of Qt. Note that this is different to the academic version of Qt. Your application must be released under a license that is compatible with the Qt Educational license.
Unsupported Qt Licenses
There is no version of PyQt that corresponds to the Qt Academic license. Instead you must use the PyQt Commercial version.
At the request of Trolltech, there is no version of PyQt that corresponds to the non-commercial version of Qt distributed with the book C++ GUI Programming with Qt3.
This page contains information about some of the tools that could be used to deploy PyQt applications on various platforms, typically in binary form.
The idea is that each solution should be listed along with a brief description and a link to its home page. The description should probably come from the solution's home page or documentation, so that it is described 'in its own words'. Further comments and links for each can be given after these fields.
Cross-Platform Solutions
The following tools are cross-platform, working on Windows and some flavours of Unix.
fman build system
https://build-system.fman.io
Creates stand-alone executables and installers for PyQt applications. Supports Windows, macOS and Linux.
PyInstaller
http://pyinstaller.python-hosting.com/
'PyInstaller is a program that converts (packages) Python programs into stand-alone executables, under Windows, Linux and Irix.'
A short How-To for using PyInstaller with PyQt on Mac OS-X:
PyInstaller On Mac OS X
cx_Freeze
http://starship.python.net/crew/atuining/cx_Freeze/index.html
'cx_Freeze is a set of utilities for freezing Python scripts into executables using many of the techniques found in Thomas Heller's py2exe, Gordon McMillan's Installer and the Freeze utility that ships with Python itself.'
bbfreeze
(Windows, Unix, but not Mac OS X)
http://cheeseshop.python.org/pypi/bbfreeze/
'bbfreeze creates stand-alone executables from python scripts. It's
similar in purpose to the well known py2exe_ for windows, py2app_ for OS X, PyInstaller_ and cx_Freeze_ (in fact ancient versions were based on cx_Freeze. And it uses the modulegraph_ package, which is also used by py2app).'
Mercurial repository: http://systemexit.de/repo/bbfreeze
Freeze
The original freeze tool that embeds Python bytecode into executables is supplied with Python - look in the examples/Tools directory.
qmake
For applications that don't depend too much on many shared library modules other than the ones shipped with PyQt, it may be possible to take advantage of qmake's features and a simple launcher application to create binaries for different platforms.
Tools for Windows
The following tools are designed to produce executables for Windows.
py2exe
http://www.py2exe.org/
'py2exe is a Python Distutils extension which converts Python scripts into executable Windows programs, able to run without requiring a Python installation.'
Comments:I highly recommend py2exe which can produce nice executables. Combined with InnoSetup, you get a full standard windows application and the user has no idea that the stuff was actually developed on Linux with Open Source technologies. -- Philippe Fremy
See the following links for more information about deploying PyQt applications with py2exe:
http://www.py2exe.org/index.cgi/Py2exeAndPyQt
http://mail.python.org/pipermail/python-list/2007-September/458364.html
ExeMaker
http://effbot.org/zone/exemaker.htm
'ExeMaker is a small tool that takes a Python script, copies it to a program directory, and creates a Windows EXE file in the same directory.'
Tools for Mac OS X
Pyqt For Mac Os 10.10
The following tools are designed to produce executables for Mac OS X.
py2app
http://undefined.org/python/#py2app
'A distutils extension which converts python scripts into executable Mac OS X applications, able to run without requiring an existing Python installation.'
Other Resources
Pyqt Mac Os
How can I create a stand-alone binary from a Python script? from the pyfaq