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

pypi: Why don't all the packages use wheel?

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

我的问题是:

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

If they don't use wheel, do they use egg?

他们可能不会。 Wheels 是 构建的发行版 ,另一种方法是提供 源发行版 ,所以这很可能是这些包发布的内容(源发行版的文件名是以 .zip.tar.gz.

结尾

Why don't they use wheel? Is that just the laziness of authors or something else, which stop them from using wheel.

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

I also found from this post that wheel stops install time scripts (correct me if I'm wrong here).

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

So, isn't it the case that because of some wheel functionalities, those packages can't use wheel (because they might need some functionalities of setup.py file, during the installation, e.g. install time scripts).

不一定,能装的包都能出轮子。给定的包有可能不仅仅是在 install-time 上安装(例如,它可能还从外部源下载一些大文件或其他东西),但通常不鼓励这样的模式。