PyQt6 6.7.1 wheel: wrong manylinux glibc version?

Phil Thompson phil at riverbankcomputing.com
Tue Jul 23 17:49:32 BST 2024


On 23/07/2024 17:28, Grzegorz Bokota wrote:
> Did use auditwheel https://pypi.org/project/auditwheel/ will not allow 
> to
> solve/early detect such problems? Based on my experience, it thoroughly
> checks required glibc version against wheel tag.
> 
> Regards,
> Grzegorz Bokota

I use auditwheel for the sip module wheels but not for the PyQt wheels. 
The real problem isn't the incorrect manylinux tag, it's that the module 
requires (for no good reason) a newer glibc.

I don't know if gcc has a flag which says compile for a particular 
version of glibc (both macOS and Windows do have something similar).

Phil

> wt., 23 lip 2024 o 18:00 Phil Thompson <phil at riverbankcomputing.com>
> napisał(a):
> 
>> 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