Qt for Python Getting Started¶
This page is focused on building Qt for Python from source, if you just want to install PySide2
pip you need to run:
pip install pyside2
Python: 3.5+ and 2.7
Qt: 5.12+ is recommended
libclang: The libclang library, recommended: version 6 for PySide2 5.12. Prebuilt versions of it can be downloaded here.
CMake: 3.1+ is needed.
Guides per platform¶
You can refer to the following pages for platform specific instructions:
A normal building command will look like this:
python setup.py install --qmake=/path/to/qmake \ --ignore-git \ --debug \ --build-tests \ --parallel=8 \ --make-spec=ninja \ --verbose-build \ --module-subset=Core,Gui,Widgets
Which will build and install the project with debug symbols, including the tests, using ninja (instead of make), and considering only the module subset of QtCore, QtGUI and QtWidgets.
- Other important options to consider are:
--cmake, to specify the path to the cmake binary,
--reuse-build, to rebuild only the modified files,
--openssl=/path/to/openssl/bin, to use a different path for OpenSSL,
--standalone, to copy over the Qt libraries into the final package to make it work on other machines.
Testing the installation¶
Once the installation finishes, you will be able to execute any of our examples:
--build-tests option will enable us to run all the auto tests inside the project:
python testrunner.py test > testlog.txt
On Windows, don’t forget to have qmake in your path
You can also run a specific test (for example
qpainter_test) by running:
ctest -R qpainter_test --verbose
Building the documentation¶
The documentation is being generated using qdoc to get the API information, and also sphinx for the local Python related notes.
The system required
libxslt, also on the Python environment,
graphviz need to be installed before running the installation process:
pip install graphviz sphinx
dot command needs to be in PATH, otherwise,
the process will fail. Installing
graphviz system-wide is also an option.
Since the process rely on a Qt installation, you need to specify where the
you will use with your
qmake is located:
Once the build process finishes, you can go to the generated
directory, and run:
Finally, you will get a
html directory containing all the generated documentation.
Using the internal tools¶
A set of tools can be found under the
tools/ directory inside the
checklibs.py: Script to analyze dynamic library dependencies of Mach-O binaries. To use this utility, just run:
python checklibs.py /path/to/some.app/Contents/MacOS/Some
This script was fetched from this repository.
create_changelog.py: Script used to create the CHANGELOG that you can find in the
python create_changelog.py -r 5.14.1 -v v5.14.0..5.14 -t bug-fix
debug_windows.py: This script can be used to find out why PySide2 modules fail to load with various DLL errors like Missing DLL or Missing symbol in DLL.
You can think of it as a Windows version of
Underneath it uses the
cdb.execommand line debugger, and the
gflags.exetool, both installed with the latest Windows Kit.
The aim is to ask users to run this script when they encounter PySide2 imports not working on Windows. The user should then provide the generated log file.
Incidentally it can also be used for any Windows executables, not just Python. To use it just run:
missing_bindings.py: This script is used to compare the state of PySide2 and PyQt5 regarding available modules and classses. This content is displayed in our wiki page, and can be used as follows:
python missing_bindings.py --qt-version 5.14.1 -w all
Please keep in mind we rely on BeautifulSoup to parse the content, so you will be to install it besides PySide2 and PyQt5 (Including additional modules like DataVisualiztion, QtCharts, WebEngine, etc).
© 2020 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.