piwheels blog

1 November 2023

Debian Bookworm and Raspberry Pi 5

Now that the Raspberry Pi 5 is announced and available, an Raspberry Pi OS release based on Debian Bookworm has been released, which includes Python 3.11. We’ve built wheels for cp311 and all project pages should now show the availability for each version: The big change in Bookworm is that you can no longer install […]

5 October 2022

One hundred million customers served

Following a substantial record breaking spike in downloads, we recently passed the 100,000,000 mark. That’s the total number of wheel files served from piwheels to date. When we reached 10 million in 3 years, reaching 100 million seemed impossible, but downloads significantly increased year-on-year, so here we are: The daily record Also, the daily record […]

Tags: stats
1 July 2022

Debian Stretch EOL

Debian Stretch was released on 17 June 2017, and it’s been supported by the Debian team for over five years. On 30 June 2022 it reached its long term support end of life. Therefore we have stopped building new package releases on Stretch, for the cp35m ABI. We will not delete existing cp35m wheels, just […]

29 March 2022

View piwheels build output

When I first started the piwheels project in April 2017, I created Issue #1 comprising a list of features I thought were necessary for the project to be “feature complete”, and until now, the issue remained open with a single checkbox remaining: be able to publicly provide output from failed build attempts. When a piwheels […]

Tags: updates
9 January 2022

piwheels stats for 2021

In 2020, a total of 36,724,799 packages were downloaded, taking the total to 67,695,042. This saved 159 years during 2020, taking us to over 600 years saved overall. 50TB of files were downloaded, taking the total to 153TB. Average daily downloads: 2020: 44,220 2021: 100,615 Average monthly downloads: 2020: 1,326,600 2021: 3,060,399 Most downloads in […]

Tags: stats
5 January 2022

piwheels stats 2021Q4

In the period of October – December 2021, 11,942,250 packages were downloaded from piwheels, bringing the total to 67,608,247. This has saved 43 years in the period, and 601 years in total! There were 58,871,182 pip searches, 886,179 project page hits, 420,490 web page hits and 294,252 project JSON downloads in the period. In the […]

Tags: stats
4 November 2021

piwheels stats 2021Q3

In the period of July – September 2021, 7,047,854 packages were downloaded from piwheels, bringing the total to 55,657,694. This has saved 33 years in the period, and 558 years in total! There were 48,256,952 pip searches, 875,834 project page hits, 397,834 web page hits and 1,094,432 project JSON downloads in the period. There were […]

Tags: stats
4 November 2021

piwheels stats 2021Q2

In the period of April – June 2021, 8,471,941 packages were downloaded from piwheels, bringing the total to 48,609,840. This has saved 38 years in the period, and 525 years in total! There were 56,200,613 pip searches, 764,031 project page hits, 386,472 web page hits and 116,486 project JSON downloads in the period. We experienced […]

Tags: stats
2 August 2021

The rinds of the Cheese Shop menu

The title is a reference to the mostly forgotten nickname of the excellent Python Package Index — Cheese Shop — which refers to the Monty Python Cheese Shop sketch. I often find myself staring at the piwheels monitor, and occasionally a strange package name or an unusually longer version number pops up: I’ve been doing […]

Tags: stats
1 August 2021

Python 3.9 wheels for Bullseye

Debian 11 (Bullseye) is due to be released shortly is now released, and Raspberry Pi OS will follow suit is also released. Bullseye comes with Python 3.9, so we needed to rebuild all platform wheels for the new ABI. We’ve added a Bullseye column to the versions table on project pages to show the status […]

6 April 2021

piwheels stats 2021Q1

In the period of January – March 2021, 9,262,754 packages were downloaded from piwheels, bringing the total to 40,096,797. This has saved 46 years in the period, and 487 years in total! There were 59,141,950 pip searches, 722,140 project page hits, 399,097 web page hits and 84,621 project JSON downloads in the period. Each month […]

Tags: stats
4 January 2021

piwheels stats for 2020

In 2020, a total of 16,184,523 packages were downloaded, taking the total to 30,815,907. This saved 269 years 3 months during 2020, taking us to over 441 years saved overall. 52TB of files were downloaded, taking the total to 103TB. Average daily downloads: 2019: 25,257 2020: 44,220 Average monthly downloads: 2019: 768,235 2020: 1,326,600 Most […]

Tags: stats
3 January 2021

piwheels stats 2020Q4

In the period of October – December 2020, 4,643,950 packages were downloaded from piwheels, bringing the total to 30,815,907. This has saved 55 years in the period, and 439 years in total! There were 37,578,502 pip searches, 736,605 project page hits, 344,206 web page hits and 50,894 project JSON downloads in the period. October had […]

Tags: stats
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 4.4.0.44 […]

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 piwheels.org. 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 piwheels.org – 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 piwheels.hostedpi.com deprecated

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

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, piwheels.org 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 piwheels.org. Since then, two new releases (v1.10.1 and v1.11.0) have been made and they are now available on piwheels.org. 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