Packages
This section summarises the progress of porting python packages for windows on arm64 platform.
A large number of python packages have platform-specific code and they need to be ported explicitly for new platforms such as windows on arm64.
Please see our investigation into python packages that need porting for win/arm64 here
Please checkout Pre-release Python binary wheels and dependencies for unofficial pre-release of packages for testing.
Python Package | Status | Dependencies | CI/CD | Commit/PR | Notes |
---|---|---|---|---|---|
setuptools | Win/ARM64 support Released in 57.4.0 |
|
| https://github.com/pypa/setuptools/commit/f15f814e9e82c2343280e8f62360f12b3023eb5f |
|
Windows Launcher support Released in in 58.2.0 |
|
| https://github.com/pypa/setuptools/issues/2757
| ||
pip | Released 21.3 |
|
|
|
|
distlib simple_launcher | Released in 0.3.3 |
|
| https://bitbucket.org/pypa/distlib/pull-requests/5?t=1 https://bitbucket.org/vinay.sajip/simple_launcher/pull-requests/1 |
|
numpy | Released in 1.21.2 |
|
| Generic issue for numpy, conflicting with coming Pythong 3.10: setuptools-distutils | 2. Important issues | |
cffi | Released in 1.15.0 |
|
|
| |
scipy | Investigation Done |
|
|
| Blocked due to fortran compiler avaiability |
sci-kit learn | Investigation Done
|
|
| flang dlls should be feed into this package, which is a manual step now unit-tests mostly passed | |
pandas | No porting required.
| numpy |
| - | if numpy is installed manually for win-arm64, then with “--no-build-isolation” flag, the installation will be successful |
lxml | Released |
|
|
|
|
pyarrow | Release v6.0.0 | arrow |
|
| |
greenlet | Merged. |
|
|
| |
Pillow | Released in 9.1.0 |
|
| A tale of a dependency chain: Pillow and the crew pip install by source doesn’t work, because Pillow has its own logic build from source that is not implemented in its setup.py, so win-arm64 specific wheel file release is needed | |
Pywin32 | Released |
|
|
| |
Maturin | Released |
|
| Build
Alternatively can build with cargo command directly
The above command works on GitHub CI on x64 machine but seems to fail on arm64 as the cargo-extra-args seems to be ignored. Test Remove rustls from cargo.toml cargo run -- build -i python -m test-crates/pyo3-mixed-submodule/Cargo.toml pip install --force-reinstall --no-index --find-links test-crates/pyo3-mixed-submodule/target/wheels pyo3-mixed-submodule pytest test-crates/pyo3-mixed-submodule/tests/ This seems to be the test on CI and test pass on win/arm64 but doesn't look like the right test set. | |
Pywinpty | Released |
|
| To build,
To run tests,
All tests should be passing with all of the PRs | |
cibuildwheel | Released |
|
|
| |
grpcio | Released |
|
|
| |
skbuild (sci-kit build) | Released in 0.13.0 |
|
| A tale of a dependency chain: Pillow and the crew | scikit build | |
pycryptodome | Blocked |
|
|
| |
azure-uamqp-python | Merged |
|
|
| |
TensorFlow | In Progress |
|
|
|
|
PyTorch | Merged |
|
| ||
matplotlib | Merged |
|
|
| |
cython-blis | Released |
|
|
| |
CMake | Released by 3.22.4 | sci-kit build |
| https://github.com/scikit-build/cmake-python-distributions/pull/231 | x86 emulated CMake is deployed for win-arm64 by this change, so as soon as official native win-arm64 CMake is released, this should be updated |
mysqlclient | blocked on dependant proprietary 3rd party library: https://mariadb.com/downloads/connectors/ |
|
|
|
|
OpenCV | Merged |
|
|
|