raspberry pi_piwheel如何在2020年节省Raspberry Pi用户的时间
raspberry pi
Piwheels使用Raspberry Pi硬件自动为PyPI (Python软件包索引)上的所有项目构建Python车轮(预编译的Python软件包)。 这意味着当Raspberry Pi用户想要使用pip安装Python库时,他们将获得一个现成的编译版本,可以保证在Raspberry Pi上运行。 这使Raspberry Pi用户可以更轻松地潜入并开始其项目。
当我在2018年10月撰写piwheels:为Raspberry Pi安装Speedy Python软件包时 ,piwheels项目尚处于第一年,并且已经证明其目的是为Raspberry Pi用户节省大量时间和精力。 但是,该项目为Raspberry Pi提供了预编译的Python包,但在第二年已经走了很长一段路。
这个怎么运作
Raspbian是Raspberry Pi的主要操作系统,已预先配置为使用piwheel,因此用户无需执行任何特殊操作即可访问wheel。
配置文件(位于/etc/pip.conf )告诉pip使用piwheels.org作为附加索引 ,因此pip首先查看PyPI,然后查看piwheel。 Piwheels网站位于Raspberry Pi 3上,而该项目构建的所有轮子都位于该Pi上。 它每月提供超过100万个软件包,对于一台35美元的计算机来说还不错!
Pis都位于“ Pi Cloud”中的仅IPv6网络上,这是由位于剑桥的托管公司Mythic Beasts提供的一项出色服务。
下载和趋势
每次下载车轮文件时,都会将其记录在数据库中。 这样可以洞悉哪些软件包最受欢迎,以及人们正在使用哪些Python版本和操作系统。 我们没有来自用户代理的太多信息,但是由于Pi 1 / Zero的体系结构显示为“ armv6”,而Pi 2/3/4的体系结构显示为“ armv7”,因此可以将它们区分开。
截至2019年12月中旬,从piwheel下载了超过1400万个软件包,仅在2019年就有近900万个。
自项目启动以来,十个最受欢迎的软件包是:
- pycparser (821,060下载)
- PyYAML (366,979)
- numpy的 (354531)
- cffi (336,982)
- 标记安全 (318,878)
- 未来 (282,349)
- aiohttp (277,046)
- 密码学 (276,167)
- 家庭辅助前端 (266,667)
- multidict (256,185)
请注意,许多纯Python程序包(例如urllib3 )都是作为PyPI上的轮子提供的; 由于它们在各个平台之间都兼容,因此通常不会从piwheel下载,因为PyPI优先。
我们还会看到随着时间的推移使用哪种Python版本等趋势。 这显示了在发布Raspbian Buster时从3.5快速接管Python 3.7:
您可以在我们的统计博客文章中看到更多趋势。
节省时间
每个软件包的构建都记录在数据库中,并且每次下载也都被存储。 具有构建持续时间的交叉引用下载显示了节省了多少时间。 一个示例是numpy-最新版本花费了大约11分钟的时间来构建。
到目前为止,piwheel总共为用户节省了超过165年的构建时间。 以目前的使用率,每天可节省200多天 。
预编译的轮子不仅可以节省构建时间,而且还意味着人们不必安装各种开发工具即可构建软件包。 一些软件包需要其他apt软件包才能访问共享库。 弄清楚您需要哪些步骤可能会很麻烦,因此我们也简化了这一步骤。 首先,我们弄清楚了该过程并将其记录在博客中 。 然后,我们将此逻辑添加到构建过程中,以便在构建轮子时,将自动计算其依赖关系并将其添加到包的项目页面中:
下一步是什么?
今年我们启动了项目页面(例如numpy ),这是一种非常实用的方法,可以让人们以人类可读的方式查找有关项目的信息。 它们还使人们更容易报告问题,例如,如果项目遗失,或者下载的软件包有问题。
在2020年初,我们计划对piwheel进行一些升级,以启用新的JSON API,以便您可以自动检查哪些版本可用,查找项目的依赖项以及更多其他内容。
下一次Debian / Raspbian升级要到2021年中旬才会进行,因此直到那时我们才开始为任何新的Python版本构建轮子。
您可以在该项目的博客上阅读有关piwheel的更多信息,我将在2020年初发布2019年综述 。您还可以在Twitter上关注@piwheels ,在其中可以查看每日和每月的统计数据以及所达到的任何里程碑。
当然,piwheels是一个开源项目,您可以在GitHub上查看整个项目的源代码 。
raspberry pi