PackagingCon

Running a Python Package Index for Raspberry Pi
2021-11-10 , Room 3

piwheels is a mirror of the Python Package Index, providing binary distributions compiled for the Raspberry Pi's Arm architecture.

Package maintainers usually provide wheels compiled for PC/Mac but not for the Arm architecture, so piwheels natively compiles all packages and makes them available to Raspberry Pi users, the regular way, using pip, without any change in behaviour required.

Providing pre-compiled binary wheels saves users time and effort, reducing friction to getting started with Python projects on Raspberry Pi.


piwheels is a mirror of the Python Package Index, providing binary distributions compiled for the Raspberry Pi's Arm architecture.

Package maintainers usually provide wheels compiled for PC/Mac but not for the Arm architecture, so piwheels natively compiles all packages and makes them available to Raspberry Pi users, the regular way, using pip, without any change in behaviour required.

Providing pre-compiled binary wheels saves users time and effort, reducing friction to getting started with Python projects on Raspberry Pi.

We serve over 2 million downloads each month and have saved Raspberry Pi users over 500 years of build time.

In this talk I'll explain:

  • how the build process works
  • what our infrastructure looks like
  • how we deal with keeping in sync with the upstream index
  • building for multiple OS versions and Python versions
  • compiling Python packages with C/C++/fortran/Golang/Rust/etc
  • how we make it easier for people to install packages and (apt) system dependencies

Software engineer building prototypes at BBC News Labs. Formerly at the Raspberry Pi Foundation. Creator of gpiozero and piwheels. Into Python, Linux and all things open source.