Building PyQt6 on RHEL7

Phil Thompson phil at riverbankcomputing.com
Sun May 21 15:49:29 BST 2023


On 18/05/2023 16:34, Blair Chesnut wrote:
> Apologies for the long email. I am trying to build PyQt6 on RedHat EL7:
> 
> Python 3.9.4 (default, Apr  6 2021, 15:55:07)
> [GCC 6.5.0] on linux
>>>> platform.uname()
> uname_result(system='Linux', node='***.duke.edu',
> release='3.10.0-1160.88.1.el7.x86_64', version='#1 SMP Sat Feb 18
> 13:27:00 UTC 2023', machine='x86_64')
> 
> I installed the “open source” version of Qt6 via
> https://wiki.qt.io/Building_Qt_6_from_Git to get a copy of qmake.
> 
> “pip install PyQt6” hangs:
> 
> $ pip install PyQt6
> Collecting PyQt6
>   Using cached PyQt6-6.5.0.tar.gz (1.0 MB)
>   Installing build dependencies ... done
>   Getting requirements to build wheel ... done
>   Preparing metadata (pyproject.toml) ... -
> 
> 
> “pip -v install --config-settings --confirm-license= PyQt6” dies when
> checking QAxContainer bindings:
> 
> $ pip -v install --config-settings --confirm-license= PyQt6
> Using pip 23.1.2 from
> /chg2/programmers/bchesnut/mypythonenv/lib/python3.9/site-packages/pip
> (python 3.9)
> Collecting PyQt6
>   Using cached PyQt6-6.5.0.tar.gz (1.0 MB)
>   Running command pip subprocess to install build dependencies
>   Collecting sip<7,>=6.5
>     Using cached
> sip-6.7.9-cp37-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.whl (904
> kB)
>   Collecting PyQt-builder<2,>=1.15
>     Using cached PyQt_builder-1.15.0-py3-none-any.whl (3.7 MB)
>   Collecting packaging (from sip<7,>=6.5)
>     Using cached packaging-23.1-py3-none-any.whl (48 kB)
>   Collecting ply (from sip<7,>=6.5)
>     Using cached ply-3.11-py2.py3-none-any.whl (49 kB)
>   Collecting setuptools (from sip<7,>=6.5)
>     Using cached setuptools-67.7.2-py3-none-any.whl (1.1 MB)
>   Collecting tomli (from sip<7,>=6.5)
>     Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
>   Installing collected packages: ply, tomli, setuptools, packaging,
> sip, PyQt-builder
>   Successfully installed PyQt-builder-1.15.0 packaging-23.1 ply-3.11
> setuptools-67.7.2 sip-6.7.9 tomli-2.0.1
>   Installing build dependencies ... done
>   Running command Getting requirements to build wheel
>   Getting requirements to build wheel ... done
>   Running command Preparing metadata (pyproject.toml)
>   Querying qmake about your Qt installation...
>   This is the GPL version of PyQt 6.5.0 (licensed under the GNU
> General Public License) for Python 3.9.4 on linux.
>   Found the license file 'pyqt-gpl.sip'.
>   Checking to see if the QtCore bindings can be built...
>   Checking to see if the QtNetwork bindings can be built...
>   Checking to see if the QtGui bindings can be built...
>   Checking to see if the QtQml bindings can be built...
>   Checking to see if the QtWidgets bindings can be built...
>   Checking to see if the QtDBus bindings can be built...
>   The QtDesigner bindings are disabled with a static Qt installation...
>   Checking to see if the QtHelp bindings can be built...
>   Checking to see if the QtOpenGL bindings can be built...
>   Checking to see if the QtOpenGLWidgets bindings can be built...
>   Checking to see if the QtPrintSupport bindings can be built...
>   Checking to see if the QtQuick bindings can be built...
>   Checking to see if the QtQuick3D bindings can be built...
>   Checking to see if the QtQuickWidgets bindings can be built...
>   Checking to see if the QtSql bindings can be built...
>   Checking to see if the QtSvg bindings can be built...
>   Checking to see if the QtSvgWidgets bindings can be built...
>   Checking to see if the QtTest bindings can be built...
>   Checking to see if the QtXml bindings can be built...
>   Checking to see if the QtMultimedia bindings can be built...
>   Checking to see if the QtMultimediaWidgets bindings can be built...
>   Checking to see if the QtPositioning bindings can be built...
>   Checking to see if the QtRemoteObjects bindings can be built...
>   Checking to see if the QtSensors bindings can be built...
>   Checking to see if the QtSerialPort bindings can be built...
>   Checking to see if the QtWebChannel bindings can be built...
>   Checking to see if the QtWebSockets bindings can be built...
>   Checking to see if the QtBluetooth bindings can be built...
>   Checking to see if the QtNfc bindings can be built...
>   Checking to see if the QtPdf bindings can be built...
>   Checking to see if the QtPdfWidgets bindings can be built...
>   Checking to see if the QtSpatialAudio bindings can be built...
>   Checking to see if the QtTextToSpeech bindings can be built...
>   Checking to see if the QAxContainer bindings can be built...
>   Traceback (most recent call last):
>     File
> "/chg2/programmers/bchesnut/mypythonenv/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py",
> line 353, in <module>
>       main()
>     File
> "/chg2/programmers/bchesnut/mypythonenv/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py",
> line 335, in main
>       json_out['return_val'] = hook(**hook_input['kwargs'])
>     File
> "/chg2/programmers/bchesnut/mypythonenv/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py",
> line 152, in prepare_metadata_for_build_wheel
>       whl_basename = backend.build_wheel(metadata_directory, 
> config_settings)
>     File
> "/tmp/pip-build-env-c21gn4ah/overlay/lib/python3.9/site-packages/sipbuild/api.py",
> line 46, in build_wheel
>       project = AbstractProject.bootstrap('wheel',
>     File
> "/tmp/pip-build-env-c21gn4ah/overlay/lib/python3.9/site-packages/sipbuild/abstract_project.py",
> line 87, in bootstrap
>       project.setup(pyproject, tool, tool_description)
>     File
> "/tmp/pip-build-env-c21gn4ah/overlay/lib/python3.9/site-packages/sipbuild/project.py",
> line 602, in setup
>       self.update(tool)
>     File "project.py", line 187, in update
>     File
> "/tmp/pip-build-env-c21gn4ah/overlay/lib/python3.9/site-packages/sipbuild/project.py",
> line 623, in update
>       self.update_buildable_bindings()
>     File
> "/tmp/pip-build-env-c21gn4ah/overlay/lib/python3.9/site-packages/sipbuild/project.py",
> line 639, in update_buildable_bindings
>       raise UserException("There are no bindings that can be built")
>   sipbuild.exceptions.UserException
>   error: subprocess-exited-with-error
> 
>   × Preparing metadata (pyproject.toml) did not run successfully.
>   │ exit code: 1
>   ╰─> See above for output.
> 
>   note: This error originates from a subprocess, and is likely not a
> problem with pip.
>   full command: /chg2/programmers/bchesnut/mypythonenv/bin/python3
> /chg2/programmers/bchesnut/mypythonenv/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py
> prepare_metadata_for_build_wheel /tmp/tmpoyd_okoz
>   cwd: /tmp/pip-install-jssd8lic/pyqt6_f80e4d1f22c74efeabb2a51370d4ffa6
>   Preparing metadata (pyproject.toml) ... error
> error: metadata-generation-failed
> 
> × Encountered error while generating package metadata.
> ╰─> See above for output.
> 
> note: This is an issue with the package mentioned above, not pip.
> hint: See above for details.
> 
> 
> I tried downloading and installing the wheel files:
> 
> $ pip install PyQt6-6.5.0-cp37-abi3-manylinux_2_28_x86_64.whl
> ERROR: PyQt6-6.5.0-cp37-abi3-manylinux_2_28_x86_64.whl is not a
> supported wheel on this platform.
> 
> 
> Thanks in advance for suggestions,
> Blair

I'd suggest downloading the sdist, expanding it and running sip-install 
with the --verbose flag. pip isn't very good at reporting errors from 
the backend.

Phil


More information about the PyQt mailing list