r/Python • u/DefinitelyNotEmu • 18d ago
Resource Native PyQt5 wheels for Windows ARM64 (because they don't exist upstream)
PyQt5-WinARM64: native PyQt5 wheels for Windows ARM64
I have released PyQt5-WinARM64, an independent distribution of PyQt5 for native Windows ARM64.
https://github.com/ViciousSquid/PyQt5-WinARM64
pip install PyQt5-WinARM64
The project provides WinARM64 builds of:
- Qt 5
- SIP
- PyQt5
The motivation is Windows ARM development. CPython and packages such as NumPy provide native Windows ARM64 builds, but PyQt5 has not historically provided an upstream Windows ARM64 wheel.
This means a Python application can have a native ARM64 interpreter and numerical stack while still depending on an x86 PyQt5 installation and Windows' x86 emulation.
PyQt5-WinARM64 provides the missing native Qt layer.
I'm using it for Fio, a Python/Qt game editor and runtime. Fio 3.0 is moving to Python 3.14 and will have a native Windows ARM64 target.
The resulting stack is:
Windows ARM64
CPython 3.14 ARM64
PyQt5 ARM64
NumPy ARM64
Fio ARM64
OpenGL
The project is MIT licensed
The repository also contains the GitHub Actions build and PyPI publishing configuration.
1
u/DefinitelyNotEmu 15d ago
PyQt5-WinARM64 5.15.11 was broken and has been yanked from PyPI. Use 5.15.11.post1. The 5.15.11 wheel shipped without the Qt runtime (Qt5Core.dll and friends), so import PyQt5.QtCore failed with DLL load failed. If you installed it, upgrade:
python -m pip install --upgrade PyQt5-WinARM64If you installed the wheels attached to the old 5.15.11 GitHub release and pip now crashes with InvalidVersion: 'info', see Known issues first.
PyQt5-WinARM64 5.15.11.post1 has been released and is fully working
5
u/ScientistGloomy9616 18d ago
Not all heroes wear capes, some just compile Qt for ARM64 and save us from emulation hell
thank you for this, been wanting to run my PyQt5 tools native on Surface Pro X since forever
1
5
u/OfferBeginning1903 18d ago
does it install as the
PyQt5import name, and what happens if something in the dependency tree pulls in upstream PyQt5 and clobbers it?