[PySide] Still struggling to build pyside2

Filippo Rusconi listes.rusconi at laposte.net
Thu Nov 26 11:55:58 CET 2020


Greetings, Cristián, greetings, fellow developers,

in a previous mail, I described the last error that stuck me while trying to
build pyside2 from sources according to [0]:

>Regenerating /home/rusconi/.python-virtual-envs/qtforpythonenv/pyside-setup/build/lib.linux-x86_64-3.8/PySide2/examples/opengl/textures/textures_rc.py from textures.qrc
>In directory /home/rusconi/.python-virtual-envs/qtforpythonenv/pyside-setup:
>        Running command:  /home/rusconi/.python-virtual-envs/qtforpythonenv/pyside-setup/qtforpythonenv3_install/py3.8-qt5.15.1-64bit-release/bin/rcc -g python /home/rusconi/.python-virtual-envs/qtforpythonenv/pyside-setup/build/lib.linux-x86_64-3.8/PySide2/examples/opengl/textures/textures.qrc -o /home/rusconi/.python-virtual-envs/qtforpythonenv/pyside-setup/build/lib.linux-x86_64-3.8/PySide2/examples/opengl/textures/textures_rc.py
>setup.py/prepare_packages:  [Errno 2] No such file or directory: '/home/rusconi/.python-virtual-envs/qtforpythonenv/pyside-setup/qtforpythonenv3_install/py3.8-qt5.15.1-64bit-release/bin/rcc'
>error: [Errno 2] No such file or directory: '/home/rusconi/.python-virtual-envs/qtforpythonenv/pyside-setup/qtforpythonenv3_install/py3.8-qt5.15.1-64bit-release/bin/rcc'
>Traceback (most recent call last):
>  File "setup.py", line 296, in <module>
>    setup_runner.run_setup()
>  File "/home/rusconi/.python-virtual-envs/qtforpythonenv/pyside-setup/build_scripts/setup_runner.py", line 163, in run_setup
>    raise RuntimeError(msg)
>RuntimeError: setup.py invocation failed with exit code: 1.

Using an entirely new setup (reinstalled Debian/testing) and following updated
instructions from [0], I still have the same error.

Since rcc in
pyside-setup/qtforpythonenv3_install/py3.8-qt5.15.1-64bit-release/bin turns out
to be a symbolic link to qtchooser, that is missing from that directory, I tried
to replace that symlink with one that points to /usr/bin/qtchooser:

ln -s /usr/bin/qtchooser rcc

I restarted the build and indeed, that error is gone. But I have a new one:

[many lines like the one below starting with ^Patched rpath]

Patched rpath to '$ORIGIN/' (Linux) or updated rpath (OS/X) in /home/rusconi/.python-virtual-envs/pyside-setup/build/lib.linux-x86_64-3.8/PySide2/QtScript.cpython-38-x86_64-linux-gnu.so.
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.8/PySide2/QtNetwork.cpython-38-x86_64-linux-gnu.so
Patched rpath to '$ORIGIN/' (Linux) or updated rpath (OS/X) in /home/rusconi/.python-virtual-envs/pyside-setup/build/lib.linux-x86_64-3.8/PySide2/QtNetwork.cpython-38-x86_64-linux-gnu.so.
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.8/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.8/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 (9s)
***** Exception while trying to prepare bdist_wheel override class: No module named 'wheel'. Skipping wheel overriding.


Here, build_py is looking for an inexistent file in the sources directory: sources/pyside2/PySide2/__init__.py

Looking at the directory in which the missing file should have been found:

(ins)(pyside2-test-env) rusconi at debiantesting2:~/.python-virtual-envs/pyside-setup$ ls sources/pyside2/PySide2/
CMakeLists.txt  Qt3DInput      QtCharts             QtGui        QtMultimedia         QtOpenGLFunctions  QtQuick           QtScript       QtSerialPort  QtTextToSpeech  QtWebEngineCore     QtWebSockets  QtXml           global.h.in         pysideqtesttouch.h  qt.conf.in
Qt3DAnimation   Qt3DLogic      QtConcurrent         QtHelp       QtMultimediaWidgets  QtPositioning      QtQuickControls2  QtScriptTools  QtSql         QtUiTools       QtWebEngineWidgets  QtWidgets     QtXmlPatterns   glue                pysidewtypes.h      support
Qt3DCore        Qt3DRender     QtCore               QtLocation   QtNetwork            QtPrintSupport     QtQuickWidgets    QtScxml        QtSvg         QtWebChannel    QtWebKit            QtWinExtras   __init__.py.in  licensecomment.txt  qpytextobject.cpp   templates
Qt3DExtras      QtAxContainer  QtDataVisualization  QtMacExtras  QtOpenGL             QtQml              QtRemoteObjects   QtSensors      QtTest        QtWebEngine     QtWebKitWidgets     QtX11Extras   _config.py.in   py.typed.in         qpytextobject.h

I see that the __init__.py is present but in the following form:  __init__.py.in. So there seems to be a configuration step that is missing.

Looking into CMakeLists.txt:

configure_file("${CMAKE_CURRENT_SOURCE_DIR}/__init__.py.in"
                "${CMAKE_CURRENT_BINARY_DIR}/__init__.py" @ONLY)

Now, I tried to look into the build directory and found that the configured file
is there:

build/lib.linux-x86_64-3.8/PySide2/__init__.py

So apparently the build_py program searches __init__.py in the sources directory
without being aware that the actual configured file should be looked for in the
build directory (build/lib.linux-x86_64-3.8/PySide2) and *not* in
sources/pyside2/PySide2.

I do not know what is failing here on my side. Or... is there something wrong
with the build system ?

Can somebody help me out of this hole, please ?

Most sincerely,
Filippo

0: https://doc.qt.io/qtforpython/gettingstarted-linux.html (updated for 5.15).

PS Maybe fixing the instructions at [0] regarding the fact that the tools
submodule should be updated might help other people not looking at the mailing
list (thanks Cristián for the 'git submodule update --init' tip).

-- 
⢀⣴⠾⠻⢶⣦⠀  Filippo Rusconi, PhD
⣾⠁⢠⠒⠀⣿⡁   Research scientist at CNRS
⢿⡄⠘⠷⠚⠋⠀   Debian Developer
⠈⠳⣄⠀⠀⠀⠀  http://msxpertsuite.org
           http://www.debian.org




More information about the PySide mailing list