Skip to end of banner
Go to start of banner

Packages

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 38 Current »

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/pull/2758/

https://github.com/pypa/setuptools/issues/2757

pip

Released 21.3

  • distlib

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

  • Fortran compiler

  • Setuptools

  • Azure pipelines for release (Linux only)

  • Github actions for CD

https://github.com/numpy/numpy/pull/19513

Generic issue for numpy, conflicting with coming Pythong 3.10: https://linaro.atlassian.net/wiki/spaces/WOAR/pages/28593914166/setuptools-distutils#2.-Important-issues

cffi

Released in 1.15.0

https://foss.heptapod.net/pypy/cffi/-/merge_requests/107

scipy

Investigation Done

  • Numpy

  • OpenBLAS

  • Fortran compiler

Blocked due to fortran compiler avaiability

sci-kit learn

Investigation Done

  • Numpy

  • Scipy

  • Fortran

https://github.com/scikit-learn/scikit-learn/pull/20997

flang dlls should be feed into this package, which is a manual step now

 Test Results

unit-tests mostly passed
2 failed, 21039 passed, 1097 skipped, 61 xfailed, 38 xpassed, 4005 warnings

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

  • zlib

  • iconv

  • libxml2

  • libxslt

pyarrow

Release v6.0.0

arrow

https://github.com/apache/arrow/pull/11383

greenlet

Merged.

https://github.com/python-greenlet/greenlet/pull/271

Pillow

Released

  • lcms2

  • freetype

  • zlib

  • libwebp

  • libjpeg

  • libpng

  • libimagequant

  • libtiff

  • openjpg

  • fribidi

https://github.com/python-pillow/Pillow/pull/5811

A tale of a dependency chain: Pillow and the crew

Pywin32

Released

https://github.com/mhammond/pywin32/pull/1793

Maturin

Released

https://github.com/PyO3/maturin/pull/674

 Notes

Build

python setup.py install

Alternatively can build with cargo command directly

cargo run -- build --release -b bin --target aarch64-pc-windows-msvc --no-sdist --cargo-extra-args="--no-default-features" --cargo-extra-args="--features log,upload,human-panic"

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

  • winpty

  • gyp

 Notes

To build,

maturin develop --release

To run tests,

python runtests.py

All tests should be passing with all of the PRs

cibuildwheel

Released

https://github.com/pypa/cibuildwheel/pull/920

grpcio

Released

https://github.com/grpc/grpc/pull/28164

skbuild (sci-kit build)

Released in 0.13.0
https://github.com/scikit-build/scikit-build/releases/tag/0.13.0

https://github.com/scikit-build/scikit-build/pull/612

https://linaro.atlassian.net/wiki/spaces/WOAR/pages/28654632982/A+tale+of+a+dependency+chain+Pillow+and+the+crew#scikit-build

pycryptodome

Blocked

https://github.com/Legrandin/pycryptodome/pull/579

azure-uamqp-python

Merged

https://github.com/Azure/azure-uamqp-python/pull/286

TensorFlow

In Progress

PyTorch

Merged

https://github.com/pytorch/pytorch/pull/72424

Building Pytorch

matplotlib

Merged

https://github.com/matplotlib/matplotlib/pull/22429

cython-blis

Released

https://github.com/explosion/cython-blis/pull/67

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

https://github.com/opencv/opencv-python/pull/644

  • No labels