pypi:为什么所有的包装都不使用滚轮?

时间:2019-05-23 19:02:10

标签: python pip pypi python-wheel egg

This python wheel网站说,前360个软件包中只有300个使用wheel。我进一步分析了Python生态系统,发现在前5000个软件包中,约有2961个软件包使用wheel,而其他软件包则没有。

我的问题是:

  1. 如果他们不使用wheel,他们会使用egg吗?
  2. 他们为什么不使用wheel?仅仅是作者的懒惰或其他原因阻止了他们使用转盘。
  3. 我还从this帖子中发现,wheel停止了安装时间脚本(如果我在这里错了,请纠正我)。因此,是否不是因为某些wheel功能而导致这些软件包不能使用wheel(因为在安装过程中它们可能需要setup.py文件的某些功能,例如安装时间脚本) 。

1 个答案:

答案 0 :(得分:3)

  

如果他们不使用轮子,他们会使用鸡蛋吗?

他们可能没有。 Wheels是内置发行版,替代方法是提供源发行版,因此这可能是这些软件包正在发布的内容(源发行版的文件名以{{1}结尾}或.zip

  

他们为什么不使用滚轮?仅仅是作者的懒惰或其他原因阻止了他们使用转盘。

除非可以使用纯Python轮子构建项目,否则为特定平台构建轮子需要访问类似的构建环境。他们可能没有给定的构建环境,或者没有足够的用户来证明额外的工作合理。他们的软件包也很琐碎,以至于从源代码安装到从内置发行版安装都没有太大区别。

  

我还从这篇文章中发现,滚轮会停止安装时间脚本(如果我在这里错了,请纠正我)。

这是正确的:轮子是为给定的平台构建的,因此,除了将包放在路径中之外,在安装时什么都不做。

  

因此,不是因为某些转盘功能而导致这些软件包不能使用转盘的原因(因为在安装过程中它们可能需要setup.py文件的某些功能,例如安装时间脚本)。

并非如此,任何可以安装的包装都可以产生轮子。给定的软件包有可能不仅仅是在安装时进行安装(例如,可能还在从外部来源下载一些大文件或其他东西)而做的事情还多,但通常不鼓励使用这种模式。