PyQt6 6.7.1 wheel: wrong manylinux glibc version?

Phil Thompson phil at riverbankcomputing.com
Tue Jul 23 17:00:06 BST 2024


I think this is another case of using a too new Linux distribution to 
build the wheel (like the problem with PyQt5). PyQt-builder sets the 
manylinux version to 2.28 when it should really inspect the extension 
module for GLIBC symbols.  From memory 6.7.1 was built on Ubuntu 22.04 
and v6.7.0 on 20.04.

I'm in the process of moving from virtual machines to docker containers 
for the Linux builds so I should be able to confirm and correct this 
fairly easily.

Thanks,
Phil

On 23/07/2024 13:34, Holger.Joukl at LBBW.de wrote:
> Hi,
> 
> (very very) long time no see on this list. 😉
> 
> I just ran into an issue trying the latest & greatest PyQt6 version 
> 6.7.1.
> Looks to me like the wheel that gets installed by pip
> (PyQt6-6.7.1-cp38-abi3-manylinux_2_28_x86_64.whl)
> doesn't fit the advertised manylinux glibc.
> 
> I'm running on RHEL 8.10 using Python 3.11. While 6.7.1 errors out
> with a missing glibc version error,
> 6.7.0 works just fine.
> 
> Here goes:
> 
> # Cleanup PyQt & deps.
> 0 $ .venv/python3.11/test/bin/pip uninstall PyQt6 PyQt6-Qt6 PyQt6-sip 
> -y
> Found existing installation: PyQt6 6.7.1
> Uninstalling PyQt6-6.7.1:
>   Successfully uninstalled PyQt6-6.7.1
> Found existing installation: PyQt6-Qt6 6.7.2
> Uninstalling PyQt6-Qt6-6.7.2:
>   Successfully uninstalled PyQt6-Qt6-6.7.2
> Found existing installation: PyQt6_sip 13.8.0
> Uninstalling PyQt6_sip-13.8.0:
>   Successfully uninstalled PyQt6_sip-13.8.0
> 0 $ # Make sure there's no bogus stuff cached.
> 0 $ rm -fr ~/.cache/pip
> 
> # Install PyQt 6.7.1 & run myapp with it.
> 0 $ .venv/python3.11/test/bin/pip install PyQt6
> Collecting PyQt6
>   Downloading PyQt6-6.7.1-cp38-abi3-manylinux_2_28_x86_64.whl.metadata 
> (2.1 kB)
> Collecting PyQt6-sip<14,>=13.8 (from PyQt6)
>   Downloading
> PyQt6_sip-13.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata
> (420 bytes)
> Collecting PyQt6-Qt6<6.8.0,>=6.7.0 (from PyQt6)
>   Downloading
> PyQt6_Qt6-6.7.2-py3-none-manylinux_2_28_x86_64.whl.metadata (534
> bytes)
> Downloading PyQt6-6.7.1-cp38-abi3-manylinux_2_28_x86_64.whl (8.2 MB)
>    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.2/8.2 MB 1.4 MB/s eta 
> 0:00:00
> Downloading PyQt6_Qt6-6.7.2-py3-none-manylinux_2_28_x86_64.whl (74.3 
> MB)
>    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 74.3/74.3 MB 7.1 MB/s eta 
> 0:00:00
> Downloading
> PyQt6_sip-13.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl
> (293 kB)
>    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 293.9/293.9 kB 10.1 MB/s 
> eta 0:00:00
> Installing collected packages: PyQt6-Qt6, PyQt6-sip, PyQt6
> Successfully installed PyQt6-6.7.1 PyQt6-Qt6-6.7.2 PyQt6-sip-13.8.0
> 0 $ .venv/python3.11/test/bin/myapp
> Traceback (most recent call last):
>   File ".venv/python3.11/test/bin/myapp", line 384, in <module>
>     main()
>   File ".venv/python3.11/test/bin/myapp", line 355, in main
>     import iedit.config
>   File "src/iedit/config.py", line 16, in <module>
>     from qtutils.DictBuilderDialog import EnumerationColumn,
> FQVColumn, TextColumn
>   File
> ".venv/python3.11/test/lib64/python3.11/site-packages/qtutils/DictBuilderDialog.py",
> line 5, in <module>
>     from qt import QVBoxLayout, QHBoxLayout, QGridLayout
>   File
> ".venv/python3.11/test/lib64/python3.11/site-packages/qt/__init__.py",
> line 27, in <module>
>     from qtpy.QtGui import (
>   File
> ".venv/python3.11/test/lib64/python3.11/site-packages/qtpy/QtGui.py",
> line 57, in <module>
>     from PyQt6 import QtGui
> ImportError: /lib64/libm.so.6: version `GLIBC_2.35' not found
> (required by
> .venv/python3.11/test/lib64/python3.11/site-packages/PyQt6/QtGui.abi3.so)
> 
> 
> If I force the previous PyQt 6.7.0 version instead everything works 
> smoothly:
> 
> # Uninstall PyQt 6.7.1 & deps.
> 1 $ .venv/python3.11/test/bin/pip uninstall PyQt6 PyQt6-Qt6 PyQt6-sip 
> -y
> Found existing installation: PyQt6 6.7.1
> Uninstalling PyQt6-6.7.1:
>   Successfully uninstalled PyQt6-6.7.1
> Found existing installation: PyQt6-Qt6 6.7.2
> Uninstalling PyQt6-Qt6-6.7.2:
>   Successfully uninstalled PyQt6-Qt6-6.7.2
> Found existing installation: PyQt6_sip 13.8.0
> Uninstalling PyQt6_sip-13.8.0:
>   Successfully uninstalled PyQt6_sip-13.8.0
> 
> # Install PyQt 6.7.0 & run myapp.
> 0 $ .venv/python3.11/test/bin/pip install PyQt6==6.7.0
> Collecting PyQt6==6.7.0
>   Downloading
> PyQt6-6.7.0-1-cp38-abi3-manylinux_2_28_x86_64.whl.metadata (2.1 kB)
> Collecting PyQt6-sip<14,>=13.6 (from PyQt6==6.7.0)
>   Using cached
> PyQt6_sip-13.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl.metadata
> (420 bytes)
> Collecting PyQt6-Qt6<6.8.0,>=6.7.0 (from PyQt6==6.7.0)
>   Using cached
> PyQt6_Qt6-6.7.2-py3-none-manylinux_2_28_x86_64.whl.metadata (534
> bytes)
> Downloading PyQt6-6.7.0-1-cp38-abi3-manylinux_2_28_x86_64.whl (8.1 MB)
>    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.1/8.1 MB 29.7 MB/s eta 
> 0:00:00
> Using cached PyQt6_Qt6-6.7.2-py3-none-manylinux_2_28_x86_64.whl (74.3 
> MB)
> Using cached
> PyQt6_sip-13.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl
> (293 kB)
> Installing collected packages: PyQt6-Qt6, PyQt6-sip, PyQt6
> Successfully installed PyQt6-6.7.0 PyQt6-Qt6-6.7.2 PyQt6-sip-13.8.0
> 0 $ .venv/python3.11/test/bin/myapp
> # myapp runs successfully...
> 
> 
> Looks to me like something might be amiss with the wheel build here -
> the advertised manylinux_2_28
> should work on a glibc 2.28 system (like RHEL 8+) according to
> https://github.com/pypa/manylinux.
> 
> Best regards,
> Holger
> 
> (Please bear with me & ignore the lengthy corporate disclaimer usually
> added here, sorry...)
> 
> 
> 
> Landesbank Baden-Wuerttemberg
> Anstalt des oeffentlichen Rechts
> Hauptsitze: Stuttgart, Karlsruhe, Mannheim, Mainz
> HRA 12704
> Amtsgericht Stuttgart
> HRA 4356, HRA 104 440
> Amtsgericht Mannheim
> HRA 40687
> Amtsgericht Mainz
> 
> Die LBBW verarbeitet gemaess Erfordernissen der DSGVO Ihre
> personenbezogenen Daten.
> Informationen finden Sie unter www.lbbw.de/datenschutz.


More information about the PyQt mailing list