[PySide] Building pyside2 seems to be rocket science...
Filippo Rusconi
listes.rusconi at laposte.net
Thu Dec 10 23:50:59 CET 2020
and... it turns out that I am not a rocket scientist :-(
Greetings, fellow developers,
those reading this mailing list regularly know that I have been struggling with
the build of Pyside2...
Well, I think I finally got round of some glitches in the build system and I
would like to publish some notes that might be useful to others in the same
journey... These notes will also be in the net, so I can refer to these
later :-)
Qt 5.15
=======
Debian testing, 20201210
Python3.9, gcc (Debian 10.2.0)
Note: the command lines start with % (using zsh).
First off follow the instructions at
https://doc.qt.io/qtforpython/gettingstarted-linux.html
However some things need to be done that are not described:
In order to succeed in building sphinx/qthelp doc builds:
% apt install python3-sphinxcontrib.qthelp
% cd pyside-setup && git checkout -b 5.15 --track origin/5.15
To make sure the pyside2-tools directory gets populated
% git submodule update --init
Check that the directory is no more empty:
% ls sources/pyside2-tools
In the virtual environment and in pyside-setup run the command:
% python3 setup.py build --reuse-build --qmake=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake --build-tests --ignore-git 2>&1 | tee ../pyside2-5.15-build-$(today-time).log
Get error:
==========
Regenerating /home/rusconi/.python-virtual-envs/pyside-setup/build/lib.linux-x86_64-3.9/PySide2/examples/opengl/textures/textures_rc.py from textures.qrc
In directory /home/rusconi/.python-virtual-envs/pyside-setup:
Running command: /home/rusconi/.python-virtual-envs/pyside-setup/testenv3_install/py3.9-qt5.15.1-64bit-release/bin/rcc -g python /home/rusconi/.python-virtual-envs/pyside-setup/build/lib.linux-x86_64-3.9/PySide2/examples/opengl/textures/textures.qrc -o /home/rusconi/.python-virtual-envs/pyside-setup/build/lib.linux-x86_64-3.9/PySide2/examples/opengl/textures/textures_rc.py
setup.py/prepare_packages: [Errno 2] No such file or directory: '/home/rusconi/.python-virtual-envs/pyside-setup/testenv3_install/py3.9-qt5.15.1-64bit-release/bin/rcc'
error: [Errno 2] No such file or directory: '/home/rusconi/.python-virtual-envs/pyside-setup/testenv3_install/py3.9-qt5.15.1-64bit-release/bin/rcc'
Traceback (most recent call last):
File "/home/rusconi/.python-virtual-envs/pyside-setup/setup.py", line 296, in <module>
setup_runner.run_setup()
File "/home/rusconi/.python-virtual-envs/pyside-setup/build_scripts/setup_runner.py", line 168, in run_setup
raise RuntimeError(msg)
RuntimeError:
setup.py invocation failed with exit code: 1.
setup.py invocation was: /home/rusconi/.python-virtual-envs/testenv/bin/python3 setup.py build --reuse-build --qmake=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake --build-tests --ignore-git --internal-build-type=pyside2
Fix:
====
% pushd /home/rusconi/.python-virtual-envs/pyside-setup/testenv3_install/py3.9-qt5.15.1-64bit-release/bin/
% ln -sf /usr/bin/qtchooser uic
% ln -sf /usr/bin/qtchooser rcc
% python3 setup.py build --reuse-build --qmake=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake --build-tests --ignore-git 2>&1 | tee ../pyside2-5.15-build-$(today-time).log
Get error:
==========
In directory /home/rusconi/.python-virtual-envs/pyside-setup:
Running command: /home/rusconi/.python-virtual-envs/pyside-setup/patchelf --set-rpath $ORIGIN/:/usr/lib/x86_64-linux-gnu /home/rusconi/.python-virtual-envs/pyside-setup/build/lib.linux-x86_64-3.9/PySide2/pyside2-lupdate
warning: working around a Linux kernel bug by creating a hole of 94208 bytes in ‘/home/rusconi/.python-virtual-envs/pyside-setup/build/lib.linux-x86_64-3.9/PySide2/pyside2-lupdate’
Patched rpath to '$ORIGIN/' (Linux) or updated rpath (OS/X) in /home/rusconi/.python-virtual-envs/pyside-setup/build/lib.linux-x86_64-3.9/PySide2/pyside2-lupdate.
running build_py
package init file 'sources/pyside2/PySide2/__init__.py' not found (or not a regular file)
running build_ext
--- Build completed (10s)
Fix:
====
% cp build/lib.linux-x86_64-3.9/PySide2/__init__.py sources/pyside2/PySide2
% python3 setup.py build --reuse-build --qmake=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake --build-tests --ignore-git 2>&1 | tee ../pyside2-5.15-build-$(today-time).log
Build terminates and $? is 0.
Now install:
============
% python3 setup.py install --reuse-build --qmake=/usr/lib/x86_64-linux-gnu/qt5/bin/qmake --build-tests --ignore-git 2>&1 | tee ../pyside2-5.15-build-$(today-time).log
The install terminates and $? is 0.
Could play Tetrix using
% python3 examples/widgets/widgets/tetrix.py !!!
Done !
Now the hardest part: start writing code for the Python bindings of my lib.
Thanks for listening.
--
⢀⣴⠾⠻⢶⣦⠀ Filippo Rusconi, PhD
⣾⠁⢠⠒⠀⣿⡁ Research scientist at CNRS
⢿⡄⠘⠷⠚⠋⠀ Debian Developer
⠈⠳⣄⠀⠀⠀⠀ http://msxpertsuite.org
http://www.debian.org
More information about the PySide
mailing list