pypi:为什么不是所有的包都使用wheel?

R44*_*444 6 python egg pip pypi python-wheel

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

我的问题是:

  1. 如果他们不使用wheel,他们会使用吗egg
  2. 他们为什么不使用wheel?这只是作者的懒惰还是其他什么原因,阻止他们使用wheel。
  3. 我还从这篇文章中发现wheel停止安装时脚本(如果我错了,请纠正我)。那么,是不是由于某些wheel功能,这些软件包不能使用wheel(因为它们setup.py在安装过程中可能需要文件的某些功能,例如安装时脚本)。

Dus*_*ram 4

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

他们可能不知道。Wheels 是构建的发行版,替代方法是提供源发行版,因此这很可能是这些包所发布的内容(源发行版的文件名以.zip.tar.gz.

他们为什么不使用轮子?这只是作者的懒惰还是其他什么原因,阻止他们使用wheel。

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

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

这是正确的:轮子是为给定平台构建的,因此除了将包放入路径中之外,在安装时不执行任何操作。

那么,是不是由于某些wheel功能,这些软件包不能使用wheel(因为它们在安装过程中可能需要setup.py文件的某些功能,例如安装时脚本)。

事实并非如此,任何可以安装的软件包都可以产生轮子。给定的包可能不仅仅在安装时进行安装(例如,它可能还从外部源下载一些大文件或某些内容),但通常不鼓励这样的模式。