Qt for Python/GettingStarted/X11

From Qt Wiki
Jump to navigation Jump to search

Official documentation

Refer to the official docs to get started on Linux/X11.

Development

Development happens in the 5.15 and dev branches of the pyside-setup repository.

The top level repository has the following submodules:

  • sources/pyside2-tools: pyside2-lupdate

Contributions follow the standard process.

It is helpful to have debug binaries or symbols for Python available. Debug packages can be installed separately in some Linux distributions (e.g.: Ubuntu, the packages python3-dbg, libpython3-dbg provide a debug binary python3-dbg)

If your distribution does not include them, you can download python sources and compile it by yourself, e.g.

./configure --prefix=/where/to/install/python/path CFLAGS="-O0 -fno-inline -fno-omit-frame-pointer -g" LDFLAGS="-O0" CPPFLAGS="-O0" OPT="-O0 -g"
make
make install

It is also recommended to use a Virtual Environment for testing to be able to always start from a clean base and avoid issues with write permissions in installations.

A new virtual environment can be created as follows:

virtualenv -p /usr/bin/python3-dbg testenv                                          

Please take into consideration that the binary name might be different in your system, and that you can choose a different name for the environment instead of testenv.

Troubleshooting

  • Wrong RUNPATH / rpath

If you choose to build Python from sources in shared library configuration, it might be the case that the rpath is not set properly, which means that the built python binary might use the system python shared library, instead of the custom build shared library. You can patch the interpreter rpath values with a binary that PySide2 provides:

cd pyside-setup
./patchelf --set-rpath /path/to/your/local/python/lib /path/to/your/python/virtualenv/binary/python

And then you can proceed to re-install PySide2. (you can check if the patch worked with readelf -d /path/to/your/python/virtualenv/binary/python)

  • Missing libICU causes linking problems

From 5.9+ you can get a copy of libICU by specifying --standalone (but not including --iculib-url) as an argument to setup.py execution.

  • Recompile with -fPIC

This issue is usually encountered when using pyenv in a Linux distribution. It's necessary to reinstall python using pyenv with the following addendum:

env PYTHON_CFLAGS=-fPIC pyenv install -v 2.7.8