[pyqtdeploy] Failing at building the demo

umbertofilippo umbertofilippo at tiscali.it
Fri Apr 19 17:15:44 BST 2024


Hello everyone,


I finally had some time to come back to this.

I tried to build my own application (a simple memory game, whose source 
you can find here: https://github.com/umbe1987/memory).

Host Linux-64 and target Linux-64.

The deployment process seemed smooth, however when I try to launch my 
application in the build-linux-64 directory, I see this error:


```

Traceback (most recent call last):
   File "memory.py", line 6, in <module>
   File "bootstrap-3.11.0.py", line 1178, in _find_and_load
   File "bootstrap-3.11.0.py", line 1142, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'PyQt5.QtMultimedia'

```

I went back to the .pdt file (`pyqtdeploy-build memory.pdt`), but in the 
Packages tab I cannot see QtMultimedia listed anywhere.

I could try to add it manually in the memory.pdt file, but I was 
wondering if I am doing anything wrong.

I am sharing the content of my pdt file below.

Many thanks in advance if you wish to help.


Umberto


memory.pdt

```

version = 0
sysroot = ""
sysroots_dir = ""
parts = [ "Python:random", "PyQt:PyQt5.QtWidgets", "Python:glob", 
"Python:os", "PyQt:PyQt5.QtCore", "PyQt:PyQt5.QtGui", "SIP:PyQt5.sip", 
"PyQt:PyQt5",]

[Application]
entry_point = ""
is_console = false
is_bundle = false
name = ""
qmake_configuration = ""
script = "memory.py"
syspath = ""

[Application.Package]
name = "data"
exclude = [ "*.pyc", "*.pyd", "*.pyo", "*.pyx", "*.pxi", "__pycache__", 
"*-info", "EGG_INFO", "*.so",]
[[Application.Package.Content]]
name = "back.jpg"
included = true
is_directory = false

[[Application.Package.Content]]
name = "img"
included = true
is_directory = true
[[Application.Package.Content.Content]]
name = "analisiapprofondita.jpg"
included = true
is_directory = false

[[Application.Package.Content.Content]]
name = "cagnaccioselvaggio.jpg"
included = true
is_directory = false

[[Application.Package.Content.Content]]
name = "diamanteocchidileone.jpg"
included = true
is_directory = false

[[Application.Package.Content.Content]]
name = "lameraviglia.jpg"
included = true
is_directory = false

[[Application.Package.Content.Content]]
name = "leggedelpiuforte.jpg"
included = true
is_directory = false

[[Application.Package.Content.Content]]
name = "lucertolacrogiolante.jpg"
included = true
is_directory = false

[[Application.Package.Content.Content]]
name = "ricercaossessiva.jpg"
included = true
is_directory = false

[[Application.Package.Content.Content]]
name = "ruggitodelwurm.jpg"
included = true
is_directory = false

[[Application.Package.Content.Content]]
name = "studioaccurato.jpg"
included = true
is_directory = false

[[Application.Package.Content.Content]]
name = "Tropicalisland.jpg"
included = true
is_directory = false

[[Application.Package.Content.Content]]
name = "wurmarrogante.jpg"
included = true
is_directory = false


[[Application.Package.Content]]
name = "sound"
included = true
is_directory = true
[[Application.Package.Content.Content]]
name = "end.wav"
included = true
is_directory = false

[[Application.Package.Content.Content]]
name = "fail.wav"
included = true
is_directory = false

[[Application.Package.Content.Content]]
name = "success.wav"
included = true
is_directory = false

```

On 3/12/24 08:48, umbertofilippo wrote:
>
> Thanks Charles and KC!
>
>
> I was finally able to build the demo after installing all the Qt for 
> X11 requirements for Linux!!!
>
>
> For the records, here is what I had to install on my machine (Linux 
> Mint 21):
>
> Note: there is a package in the list of requirements which has a 
> missing match on my system, I am marking it down below:
>
>
> sudo apt-get install libxcb-util-dev
> sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev 
> libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev libxrender-dev 
> libxcb1-dev libxcb-glx0-dev libxcb-keysyms1-dev libxcb-image0-dev 
> libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync0-dev libxcb-xfixes0-dev 
> libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev 
> libxkbcommon-dev libxkbcommon-x11-dev libxcb-xinerama0-dev # instead 
> of "libxcd-xinerama-dev"
>
>
> Now, on my application and then Android! ;)
>
>
> On 3/9/24 20:47, Umberto Minora wrote:
>> Thanks for the hint Charles, I will try to test the solution as soon 
>> as I can and report back on the result.
>>
>> As far as I understand, I should do "sudo apt-get install 
>> libxcb-util-dev" as explained in 
>> https://forum.qt.io/topic/125582/qt-5-15-2-do-not-build-libqxcb-so-but-at-the-same-time-qt-5-14-0-successfully-build-libqxcb-so/4?_=1710013170647&lang=it 
>> and run "build-demo.py" again.
>>
>> Will be back soon.
>>
>> Umberto
>>
>> Il 9 mar 2024 15:48, Charles <peacech at gmail.com> ha scritto:
>>
>>     Do you have libxcb.so platform plugin in your qt directory?
>>
>>     If not you need to rebuild qt again, make sure that requirements
>>     listed at https://doc.qt.io/qt-5/linux-requirements.html are
>>     installed and make sure the xcb platform plugin is built.
>>
>>     On Sat, Mar 9, 2024 at 8:38 PM umbertofilippo
>>     <umbertofilippo at tiscali.it> wrote:
>>
>>         Hello everyone,
>>
>>
>>         just a quick update: I did the KC's three lines trick and it
>>         did the job.
>>
>>         I am now stuck at yet another error, which is
>>
>>         Generating the Makefiles...
>>         /home/umberto/games/python/pyqt-demo/sysroot-linux-64/Qt/bin/qmake
>>         -recursive PyQt5.pro
>>         sip-install:
>>         '/home/umberto/games/python/pyqt-demo/sysroot-linux-64/Qt/bin/qmake
>>         -recursive PyQt5.pro' failed returning 3
>>         Info: creating stash file /tmp/tmphwkq3ix1/.qmake.stash
>>         Reading /tmp/tmphwkq3ix1/QtCore/QtCore.pro
>>         Reading /tmp/tmphwkq3ix1/QtNetwork/QtNetwork.pro
>>         Reading /tmp/tmphwkq3ix1/QtGui/QtGui.pro
>>         Reading /tmp/tmphwkq3ix1/QtWidgets/QtWidgets.pro
>>         Reading /tmp/tmphwkq3ix1/QtX11Extras/QtX11Extras.pro
>>         Project ERROR: Unknown module(s) in QT: x11extras
>>         pyqtdeploy-sysroot: execution of 'sip-install' failed:
>>         returned exit code 1
>>
>>
>>         I am attaching the whole log again in case it's useful to
>>         better understand what went wrong.
>>
>>
>>         Any idea how to move on from here?
>>
>>
>>         Sorry for spamming but I hope this thread not only will fix
>>         my issues but also will serve as a reference for building
>>         with a Linux machine (or me and for others hopefully).
>>
>>
>>         Umberto
>>
>>
>>         On 3/8/24 20:32, Kaiser Chief wrote:
>>
>>             Hi,
>>
>>             "qt-everywhere-opensource-src-5.15.10.tar.xz" is the
>>             right file you are looking for.
>>
>>             Unfortunately, "pyqtdeploy/sysroot/plugins/Qt.py" is
>>             looking for 'qt-everywhere-src-{}.tar.xz'
>>
>>             You could fix that line (#53) in
>>             "pyqtdeploy/sysroot/plugins/Qt.py"with:
>>             ` qt-everywhere-opensource-src-{}.tar.xz `
>>
>>             However, you might encounter problems down the line
>>             probably...
>>
>>             I would recommend to stick with Qt5.15.2 and do necessary
>>             changes.
>>             Alternatively, you could built
>>             qt-everywhere-opensource-src-5.15.10.tar.xz from source
>>             manually and tell pyqtdeploy where to look for Qt install
>>             (but that's a bit more painful).
>>
>>
>>             Best regards,
>>
>>             KC
>>
>>             Le ven. 8 mars 2024 à 19:21, umbertofilippo
>>             <umbertofilippo at tiscali.it> a écrit :
>>
>>                 Thanks again for the feedback,
>>
>>
>>                 I have just tried to update the sysroot.toml like this:
>>
>>
>>                 # Qt
>>                 ##########################################################################
>>
>>                 [Qt]
>>                 version = "5.15.10" # original was "5.15.2"
>>                 edition = "opensource"
>>
>>                 and now it seems the link to download the qt source
>>                 can no longer be found.
>>
>>
>>                 Qt: installing component...
>>                 Qt: looking for 'qt-everywhere-src-5.15.10.tar.xz' in
>>                 /home/umberto/games/python/pyqt-demo.
>>                 Qt: downloading 'qt-everywhere-src-5.15.10.tar.xz'
>>                 from
>>                 https://download.qt.io/archive/qt/5.15/5.15.10/single/...
>>                 Qt:
>>                 'https://download.qt.io/archive/qt/5.15/5.15.10/single/qt-everywhere-src-5.15.10.tar.xz'
>>                 was not found.
>>                 pyqtdeploy-sysroot: Qt: unable to find
>>                 '/home/umberto/.pyqtdeploy/cache/qt-everywhere-src-5.15.10.tar.xz'.
>>
>>
>>                 The only similar thing I can see in
>>                 https://download.qt.io/archive/qt/5.15/5.15.10/single/
>>                 is "qt-everywhere-opensource-src-5.15.10.tar.xz"
>>
>>
>>                 If there is no easy way to solve this you can think
>>                 of I will probably try to test adding those 3 lines
>>                 to qtbase/src/corelib/global/qglobal.h
>>
>>
>>                 Thanks again so much for your kind and feedback, much
>>                 appreciated!
>>
>>
>>                 Umberto
>>
>>
>>                 On 3/8/24 19:38, Kaiser Chief wrote:
>>
>>                     To complement Charles' answer, it seems like
>>                     someone found a quick fix with GCC11, in case you
>>                     are reluctant to move back to GCC10:
>>                     https://forum.qt.io/topic/136672/error-installing-qt-everywhere-src-5-15-2-on-ubuntu-22-04/2
>>
>>
>>                     add these 3 lines at the top of
>>                     qtbase/src/corelib/global/qglobal.h : (I haven't
>>                     tested that)
>>                     ```
>>                     #ifdef __cplusplus
>>                     #include <limits>
>>                     #endif
>>                     ```
>>
>>                     For ref, the QT bug associated is:
>>                     https://bugreports.qt.io/browse/QTBUG-90395
>>                     It has been fixed for ** QT5.15.9
>>                     <https://bugreports.qt.io/issues/?jql=project+%3D+QTBUG+AND+fixVersion+%3D+5.15.9>,
>>                     but since you are using the default QT5.15.2,
>>                     well it's not fixed.
>>
>>                     Best regards,
>>
>>                     KC
>>
>>                     Le ven. 8 mars 2024 à 18:28, Charles
>>                     <peacech at gmail.com> a écrit :
>>
>>                         With C++ the relevant error is the first
>>                         error line, the rest is usually noise. If you
>>                         google gcc numeric_limits is not a class
>>                         template you will find
>>                         https://bugs.gentoo.org/768342
>>
>>                         If you use gcc 11 then use gcc 10 otherwise
>>                         patch qt headers as in
>>                         https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=92d54be896563102786238893a9c645b8bdb43ef
>>
>>                         On Sat, Mar 9, 2024 at 12:49 AM
>>                         umbertofilippo <umbertofilippo at tiscali.it> wrote:
>>
>>                             Moving on,
>>
>>
>>                             I have tried to remove OpenSSL from the
>>                             "sysroot.toml" since it is not required,
>>                             and now the process seems to go further,
>>                             but I am stuck at a new error:
>>
>>
>>                             Verifying host architecture 'linux-64'...
>>                             Verifying target architecture 'linux-64'...
>>                             zlib: verifying...
>>                             Qt: verifying...
>>                             Python: verifying...
>>                             SIP: verifying...
>>                             PyQt: verifying...
>>                             PyQt3D: verifying...
>>                             PyQtChart: verifying...
>>                             PyQtDataVisualization: verifying...
>>                             PyQtNetworkAuth: verifying...
>>                             PyQtPurchasing: verifying...
>>                             QScintilla: verifying...
>>                             zlib: installing component...
>>                             Qt: installing component...
>>                             Qt: downloading
>>                             'qt-everywhere-src-5.15.2.tar.xz' from
>>                             https://download.qt.io/archive/qt/5.15/5.15.2/single/...
>>                             pyqtdeploy-sysroot: execution of
>>                             './configure' failed: returned exit code 2
>>
>>
>>                             What can be the cause of this new error?
>>                             I see there is a new folder now in the
>>                             original pyqt demo directory called
>>                             "sysroot-linux-64" and inside I see
>>                             there's
>>                             "sysroot-linux-64/build/qt-everywhere-src-5.15.2"
>>                             with a "configure" file, but other than
>>                             this I have no clue sincerely on why it
>>                             is failing.
>>
>>
>>                             I have attached the content of running
>>                             build-demo.py with --verbose
>>
>>
>>                             Hope someone can help me. Thanks.
>>
>>
>>                             On 3/8/24 12:18, umbertofilippo wrote:
>>
>>                                 Hi and many thanks for you feedback!
>>
>>
>>                                 First of all let me tell that I am
>>                                 very interested in finding a solution
>>                                 to this problem, and I will try to do
>>                                 my best if I can contribute in case
>>                                 it's needed.
>>
>>
>>                                 I just checked, and this is what I
>>                                 can see in my
>>                                 /usr/include/openssl/opensslv.h file.
>>                                 Cannot tell though if pyqtdeploy is
>>                                 supposed to work or not given these
>>                                 lines...
>>
>>
>>                                 /*
>>                                  * SECTION 4: BACKWARD COMPATIBILITY
>>                                  */
>>
>>                                 # define OPENSSL_VERSION_TEXT
>>                                 "OpenSSL 3.0.2 15 Mar 2022"
>>
>>                                 /* Synthesize OPENSSL_VERSION_NUMBER
>>                                 with the layout 0xMNN00PPSL */
>>                                 # ifdef OPENSSL_VERSION_PRE_RELEASE
>>                                 #  define
>>                                 _OPENSSL_VERSION_PRE_RELEASE 0x0L
>>                                 # else
>>                                 #  define
>>                                 _OPENSSL_VERSION_PRE_RELEASE 0xfL
>>                                 # endif
>>                                 # define OPENSSL_VERSION_NUMBER \
>>                                     ( (OPENSSL_VERSION_MAJOR<<28) \
>>                                 |(OPENSSL_VERSION_MINOR<<20) \
>>                                 |(OPENSSL_VERSION_PATCH<<4) \
>>                                 |_OPENSSL_VERSION_PRE_RELEASE )
>>
>>                                 # ifdef  __cplusplus
>>                                 }
>>                                 # endif
>>
>>                                 # include <openssl/macros.h>
>>                                 # ifndef OPENSSL_NO_DEPRECATED_3_0
>>                                 #  define HEADER_OPENSSLV_H
>>                                 # endif
>>
>>                                 #endif
>>
>>
>>                                 Umberto
>>
>>
>>                                 On 3/7/24 19:11, Kaiser Chief wrote:
>>
>>                                     Hi,
>>
>>                                     To complement my previous message
>>                                     (and after doing a quick search
>>                                     through the source code):
>>                                     * The script "OpenSSL.py" is
>>                                     looking for
>>                                     "OPENSSL_VERSION_NUMBER" in
>>                                     "/usr/include/openssl/opensslv.h"
>>                                     * In OpenSSL 1.1.1 (which is
>>                                     installed on my Linux), I can see
>>                                     the line "#define
>>                                     OPENSSL_VERSION_NUMBER" in
>>                                     "/usr/include/openssl/opensslv.h".
>>
>>                                     Can you check that you have that
>>                                     line in your header file too?
>>
>>                                     If not, it's probably that
>>                                     OpenSSL updated their header
>>                                     files and put the VERSION_NUMBER
>>                                     somewhere else...
>>
>>                                     If you want to run the demo, I
>>                                     would recommend you install the
>>                                     default versions as written in
>>                                     the `sysroot.toml`
>>
>>                                     If there are fixes to make for
>>                                     each "version grepping", I
>>                                     believe that Phil had a way to
>>                                     contribute to plugins for
>>                                     pyqtdeploy, but can't remember
>>                                     where...
>>
>>                                     Best regards,
>>
>>                                     KC
>>
>>                                     Le jeu. 7 mars 2024 à 17:56,
>>                                     Kaiser Chief
>>                                     <kaiser.chiefmail at gmail.com> a
>>                                     écrit :
>>
>>                                         Hi,
>>
>>                                         According to the sysroot help
>>                                         page
>>                                         (https://www.riverbankcomputing.com/static/Docs/pyqtdeploy/sysroot.html#openssl),
>>                                         if you have configured your
>>                                         `sysroot.toml` like this:
>>                                         ```
>>
>>                                         [OpenSSL.linux]
>>                                         version = ""
>>                                         install_from_source = false
>>
>>                                         ```
>>
>>                                         Then, on Linux, the OpenSSL
>>                                         library used will be the one
>>                                         installed on your OS with no
>>                                         assumption on the version (so
>>                                         that should work in your
>>                                         example).
>>                                         Now, that's what is provided
>>                                         in the demo folder for
>>                                         `pyqtdeploy-3.3.0`, so that's
>>                                         odd.
>>
>>                                         Therefore, it could be that
>>                                         the `pyqtdeploy-sysroot`
>>                                         functionality is struggling
>>                                         to extract the version number
>>                                         from your OS-installed OpenSSL.
>>
>>                                         ---
>>
>>                                         I am not of great help with
>>                                         that comment, however, I
>>                                         would like to suggest, if
>>                                         it's your first time with
>>                                         pyqtdeploy to give a try at
>>                                         my Github repo:
>>
>>                                         https://github.com/achille-martin/pyqt-crom
>>
>>
>>                                         This repo aims at
>>                                         demonstrating how beginner
>>                                         devs, intermediate devs and
>>                                         expert devs can benefit from
>>                                         pyqtdeploy.
>>                                         It also offers a few simple
>>                                         tutorials to get started with
>>                                         pyqtdeploy (simpler than the
>>                                         demo in the official
>>                                         pyqtdeploy package) and
>>                                         optimises bits of the tool
>>                                         regarding the user interface
>>                                         (for now).
>>
>>                                         I can support you with your
>>                                         initial journey on
>>                                         discovering pyqtdeploy
>>                                         through my repo if you wish.
>>
>>                                         Best regards,
>>
>>                                         KC
>>
>>                                         Le jeu. 7 mars 2024 à 17:06,
>>                                         umbertofilippo
>>                                         <umbertofilippo at tiscali.it> a
>>                                         écrit :
>>
>>                                             Hello everyone, first
>>                                             time here for me :)
>>
>>
>>                                             I was giving pyqtdeploy a
>>                                             try and I am stuck at the
>>                                             very first step of
>>                                             the "Building the Demo" page.
>>
>>
>>                                             I am on a Linux-64
>>                                             machine. I am following
>>                                             the tutorial at
>>                                             https://www.riverbankcomputing.com/static/Docs/pyqtdeploy/demo.html
>>                                             and
>>                                             I have downloaded the
>>                                             demo files from
>>                                             https://files.pythonhosted.org/packages/44/d4/978017382f0ecc48601944c3fc0f58a5c5075a1d3acd48d09c11ee471b05/pyqtdeploy-3.3.0.tar.gz
>>
>>
>>                                             I have created a virtual
>>                                             python environment with
>>                                             the following packages
>>                                             and versions installed:
>>
>>                                             Name,Version
>>                                             _libgcc_mutex,0.1
>>                                             _openmp_mutex,4.5
>>                                             bzip2,1.0.8
>>                                             ca-certificates,2024.2.2
>>                                             ld_impl_linux-64,2.40
>>                                             libexpat,2.6.1
>>                                             libffi,3.4.2
>>                                             libgcc-ng,13.2.0
>>                                             libgomp,13.2.0
>>                                             libnsl,2.0.1
>>                                             libsqlite,3.45.1
>>                                             libuuid,2.38.1
>>                                             libxcrypt,4.4.36
>>                                             libzlib,1.2.13
>>                                             ncurses,6.4
>>                                             openssl,3.2.1
>>                                             pip,24.0
>>                                             pyqt5,5.15.10
>>                                             pyqt5-qt5,5.15.2
>>                                             pyqt5-sip,12.13.0
>>                                             pyqtdeploy,3.3.0
>>                                             python,3.12.2
>>                                             readline,8.2
>>                                             setuptools,69.1.1
>>                                             tk,8.6.13
>>                                             toml,0.10.2
>>                                             tzdata,2024a
>>                                             wheel,0.42.0
>>                                             xz,5.2.6
>>
>>                                             I have tried to run the
>>                                             command "python
>>                                             build-demo.py" straight
>>                                             away,
>>                                             but I am getting the
>>                                             following error:
>>
>>                                             OpenSSL: verifying...
>>                                             OpenSSL: determining
>>                                             installed version from
>>                                             '/usr/include/openssl/opensslv.h'.
>>                                             pyqtdeploy-sysroot:
>>                                             OpenSSL: unable to
>>                                             extract the version number.
>>
>>
>>                                             OpenSSL is installed on
>>                                             my machine and the result
>>                                             of doing "openssl
>>                                             version" is "OpenSSL
>>                                             3.2.1 30 Jan 2024
>>                                             (Library: OpenSSL 3.2.1
>>                                             30 Jan 2024)"
>>
>>
>>                                             Am I supposed to install
>>                                             the exact versions of all
>>                                             the components found
>>                                             in the ""sysroot.toml"
>>                                             file to be able to
>>                                             run "python build-demo.py"
>>                                             successfully?
>>
>>
>>                                             Thanks,
>>
>>
>>                                             Umberto
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20240419/847260f5/attachment-0001.htm>


More information about the PyQt mailing list