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 GitHub Actions, Azure Pipelines, Travis CI, CircleCI, and GitLab CI - and it builds and tests your wheels across all of your platforms.
While cibuildwheel itself requires a recent Python version to run (we support the last three releases), it can target the following versions to build wheels:
macOS Intel macOS Apple Silicon Windows 64bit Windows 32bit Windows Arm64 manylinux¹ PyPy & GraalPy are only supported for manylinux wheels.
² Windows arm64 support is experimental.
³ Free-threaded mode requires opt-in using enable
.
⁴ Experimental, not yet supported on PyPI, but can be used directly in web deployment. Use --platform pyodide
to build.
⁵ manylinux armv7l support is experimental. As there are no RHEL based image for this architecture, it's using an Ubuntu based image instead.
See the cibuildwheel 1 documentation if you need to build unsupported versions of Python, such as Python 2.
Usage¶cibuildwheel
runs inside a CI service. Supported platforms depend on which service you're using:
¹ Requires emulation, distributed separately. Other services may also support Linux ARM through emulation or third-party build hosts, but these are not tested in our CI.
² Uses cross-compilation. It is not possible to test arm64
on this CI platform.
³ Requires a macOS runner; runs tests on the simulator for the runner's architecture.
To get started, head over to the setup guide.
How it works¶This diagram summarises the steps that cibuildwheel takes on each platform to build your package's wheels.
Linux
macOS
Windows
For each version of Python
This isn't exhaustive, for a full list of the things cibuildwheel can do, check the options page.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4