[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