piwheels blog

3 October 2020

piwheels stats 2020Q3

In the period of July – September 2020, 4,492,796 packages were downloaded from piwheels, bringing the total to 26,171,957. This has saved 80 years in the period, and 384 years in total! There were 40,435,591 pip searches, 597,675 project page hits and 332,517 web page hits in the period. August had the highest number of […]

Tags: stats
28 September 2020

New opencv builds (including opencv 4.4.x)

The maintainer of the opencv packages on PyPI recently started uploading source distributions, so we can now build them automatically the way we build everything else, instead of manually, offline, and importing the files (which takes ages and can be prone to issues). So now we have armv6 and armv7 wheels up to version […]

Tags: opencv
25 September 2020

Requires-Python support, new project page layout and a new JSON API

Some really important features have now been deployed to We are pleased to announce the addition of support for the Requires-Python attribute specified in PEP-503 and PEP-345; a new project page layout; and the launch of the piwheels JSON API. Requires-Python Pure Python wheels (ones which contain only Python code, with no compiled extensions) […]

Tags: updates
19 September 2020

Canonicalise all the things!

Running a PyPI mirror must sound pretty straightforward. Every action you see on PyPI, you copy it. There’s a list of packages, each with a list of versions. Packages and versions can be created and deleted, sure, but that’s easily manageable, surely? When you assume… Sounds easy, but we made the following assumptions, all of […]

Tags: updates
25 August 2020

New features – deletion, yanking and more

First of all, I should say a big thanks to our hosts Mythic Beasts for their continued support. They recently rolled out Pi 4s to their hosted Pi platform, and we’ve upgraded our main host – the one hosting – from a 3B running Jessie to a (4GB) 4B running Buster, and it has […]

Tags: updates
12 July 2020

piwheels stats 2020Q2

In the period of April – June 2020, 3,631,509 packages were downloaded from piwheels, bringing the total to 21,694,480. This has saved 71 years in the period, and 303 years in total! We also started logging searches, regardless of whether the search resulted in a download, which gives us more insight into which packages are […]

Tags: stats
15 June 2020

Debian Jessie EOL

Update 2020-07-01: The EOL date has now been reached, and Jessie support has ended. Debian Jessie was released on 25 April 2015, and it’s been supported by the Debian team for over five years. On 30 June 2020 it reaches its long term support end of life. Therefore on this date we will stop building […]

28 May 2020

Raspberry Pi OS 64-bit (aarch64)

Today, Raspberry Pi announced the launch of a new 64-bit version of their operating system, which is now named “Raspberry Pi OS” rather than “Raspbian”. Currently, piwheels does not support the 64-bit image, as we do not currently build or host aarch64 wheels. However, pip will still work without users needing to change their pip […]

6 May 2020

Legacy domain deprecated

When piwheels first launched in 2017, we used the default domain provided by Mythic Beasts’ Pi cloud:, however, we quickly acquired the domain and this became the canonical URL. As of 2020-05-05 the domain is no longer in service. Please update your configuration to point at, specifically: [global] extra-index-url=

Tags: updates
1 April 2020

piwheels stats 2020Q1

In the period of January – March 2020, 3,317,443 packages were downloaded from piwheels, bringing the total to 18,062,971. This has saved nearly 60 years in the period, and 232 years in total! This was in no small part to The mysterious case of the unexplained downloads spike which turned out to be an upgrade […]

Tags: stats
7 March 2020

The mysterious case of the unexplained downloads spike

For several months, daily downloads have been fairly constant, and have shown slow and steady growth. Throughout January and the end of February, the minimum was 23,383 and the maximum was 38,139. The highest ever was 39,153. All of a sudden, on 4 March, we got 56, 225 downloads, up 48% on the previous day, […]

Tags: flask, sentry, stats
6 March 2020

How you can help

piwheels is an automated system which attempts to build every version of every package on PyPI on all supported Raspbian versions (Jessie, Stretch and Buster). There’s a whole codebase and database to manage this process and it works really well. Maintaining this is a reasonable job in itself, but another part of the process is […]

Tags: github, help
2 January 2020

piwheels stats for 2019

In 2019, a total of 9,218,822 packages were downloaded, taking the total to 14,745,528. This saved 128 years 5 months during 2019, taking us to over 172 years saved overall. 37TB of files were downloaded, taking the total to 51TB. Average daily downloads: 2018: 14,519 2019: 25,257 Average monthly downloads: 2018: 429,519 2019: 768,235 Most […]

Tags: stats
2 January 2020

piwheels stats 2019Q4

In the period of October – December 2019, 2,945,938 packages were downloaded from piwheels, bringing the total to 14,745,528. This has saved 49 years in the period, and 172 years in total! Each month had around a million downloads: which saved around between 13 and 18 years per month: 4 December had the highest (ever) […]

Tags: stats
11 November 2019

piwheels stats 2019Q3

In the period of July – September 2019, 2,414,682 packages were downloaded from piwheels, bringing the total to 11,799,590. This has saved 29 years in the period, and 123 years in total! Each month had around 800,000 downloads: which saved around between 7 and 11 years per month: 18 July had the highest (ever) number […]

Tags: stats
11 November 2019

piwheels stats 2019Q2

In the period of April – June 2019, 1,681,550 packages were downloaded from piwheels, bringing the total to 9,384,908. This has saved 24 years 8 months in the period, and 94 years 1 month in total! Each month had over 500,000 downloads : which saved around 8 years: 9 April had the highest number of […]

Tags: stats
7 November 2019

New opencv builds (including opencv 4.x)

I think this post will please a lot of people. We’ve just imported all the missing opencv files, including the latest 4.x releases up to v4.1.1.26 for all opencv/contrib/headless variations: opencv-python opencv-python-headless opencv-contrib-python opencv-contrib-python-headless When you pip install an opencv package, you’ll need various apt packages installed to provide make it work. These are now […]

Tags: opencv
18 July 2019

Raspbian Buster builds complete

An update on our last post, we have now completed a run of builds for Python 3.7 wheels for Raspbian Buster. Now, when you pip install something on Raspbian Buster, you’ll generally get a wheel for it, to the same extent you do for Jessie and Stretch. We now host 40k Python 3.4 wheels (Jessie), […]

7 July 2019

Raspbian Buster builds in progress

A while ago we had to stop building packages when we discovered an issue with our use of the cbor2 library. When packages were built by a builder Pi, we’d serialise the build info and send it in a message to the piwheels master, which would then send a message to the database. After suffering […]

24 June 2019

Raspberry Pi 4 and Raspbian Buster

Big news today: the Raspberry Pi 4 is out – and slightly ahead of the official release of Debian Buster, Raspbian Buster is released too. So what does this mean for piwheels? Raspberry Pi 4 The Raspberry Pi 4 is a huge step forward in performance. It’s a much faster computer. However, it’s not a […]

24 April 2019

piwheels stats 2019Q1

piwheels had a great start to 2019, with our biggest month in terms of downloads in January, and biggest month in terms of time saved in February! Headline stats for the quarter: Downloads: 2,176,652 Build time saved: 25 years 7 months 23 days This brings our totals so far to: Downloads: 7,703,358 Build time saved: […]

Tags: stats
3 January 2019

piwheels stats for 2018

piwheels was launched in mid-2017, and we started counting downloads in November of that year, so now we have over a year’s worth of data on which packages have been downloaded, and how much time has been saved. If you’re not familiar, is a Python package repository providing natively compiled wheels for the Raspberry […]

Tags: stats
30 September 2018

New Tensorflow releases for Raspberry Pi

Last month, the Tensorflow team at Google announced official support for Raspberry Pi, by releasing pre-build binaries of v1.9.0 to Since then, two new releases (v1.10.1 and v1.11.0) have been made and they are now available on To install the latest Tensorflow on Raspbian Stretch, first install libatlas, which is a depencency for […]

Tags: tensorflow
27 September 2018

How to work out the missing dependencies for a Python package

When you install a compiled Python wheel, whether it’s from PyPI or piwheels, it will likely depend on some shared libraries, specifically certain .so files (shared object files) in order to be used. If you’ve ever been in the situation where you’ve installed a library but importing it fails, it’s a pretty unpleasant experience: The […]

Tags: opencv
27 September 2018

New opencv builds

The opencv maintainers don’t release source distribution for the packages, so Dave has been building Raspberry Pi wheels manually from source on GitHub. They have also chosen to split releases into four separate pacakges: opencv-python opencv-python-headless opencv-contrib-python opencv-contrib-python-headless opencv-contrib includes all of opencv, plus additional modules (listed in the opencv docs). The -headless releases exclude […]

Tags: opencv
13 August 2018

Official Tensorflow releases

We’re pleased to announce the immediate availability of Tensorflow 1.9 for Raspberry Pi, as officially supported by the Tensorflow team at Google. Install Tensorflow now on your Raspberry Pi: sudo apt install libatlas3-base sudo pip3 install tensorflow This news was originally announced by Pete Warden, software engineer at Google: We now have prebuilt binaries for […]

Tags: tensorflow