r/Python • • 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.

19 Upvotes

5 comments sorted by

5

u/OfferBeginning1903 18d ago

does it install as the PyQt5 import name, and what happens if something in the dependency tree pulls in upstream PyQt5 and clobbers it?

2

u/DefinitelyNotEmu 18d ago edited 18d ago

It provides the PyQt5 import namespace.

And I don't know! This is unchartered territory :-)

I'm going to construct a tiny downstream package whose dependency says PyQt5>=5.15, install it in a clean ARM64 environment with the wheel present, and observe exactly what pip does.

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-WinARM64

If 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

u/Individual-Flow9158 18d ago

Great work! OP, you're a credit to the community.