Python wheels are great. Building them across Mac, Linux, Windows, on multiple versions of Python, is not.
cibuildwheel is here to help.
cibuildwheel runs on your CI server - currently it supports Azure Pipelines, Travis CI, AppVeyor, GitHub Actions and CircleCI - and it builds and tests your wheels across all of your platforms.
What does it do?¶
|macOS x86_64||Windows 64bit||Windows 32bit||manylinux x86_64||manylinux i686||manylinux aarch64||manylinux ppc64le||manylinux s390x|
|PyPy 2.7 v7.3.0||✅||✅||✅|
|PyPy 3.6 v7.3.0||✅||✅||✅|
¹ Not supported on Travis
² Only supported on Travis
³ Beta support until Travis CI fixes a bug
- Builds manylinux, macOS and Windows wheels for CPython and PyPy using Azure Pipelines, Travis CI, AppVeyor, and CircleCI
- Bundles shared library dependencies on Linux and macOS through auditwheel and delocate
- Runs the library test suite against the wheel-installed version of your library
cibuildwheel currently works on Travis CI, Azure Pipelines, AppVeyor, GitHub Actions, CircleCI, and Gitlab CI. Check the table below for supported platforms on each service:
cibuildwheel is not intended to run on your development machine. Because it uses system Python from Python.org it will try to install packages globally - not what you expect from a build tool! Instead, isolated CI services like those mentioned above are ideal.
To get started, head over to the setup guide.