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

标签 python pip pypi python-wheel egg

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

我的问题是:

  1. 如果他们不使用 wheel,他们会使用 egg 吗?
  2. 他们为什么不使用 wheel?是作者的懒惰还是其他原因阻止了他们使用 wheel。
  3. 我还从 this 找到了发布 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.

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

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

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

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).

并不是,任何可以安装的包都可以产生一个轮子。给定的包有可能不仅仅是在安装时安装(例如,它可能还从外部源下载一些大文件或其他东西),但通常不鼓励这样的模式。

关于python - pypi:为什么不是所有的包都使用 wheel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56281470/

相关文章:

python - 错误 "ModuleNotFoundError: No module named ' numpy'";但已安装 NumPy

python - 如何在 RedHat 上安装 pyautogui 模块

python - elasticsearch-curator安装错误 “cx_Freeze.freezer.ConfigError: cannot find file/directory named vcruntime140.dll”

python - 将 django HiddenInput 小部件的值设置为模板中呈现的另一个对象的 id

python - 封装矢量化函数 - 用于 Panda DataFrames

python - 查找每行中的前 N ​​个非空值

python - 如何迭代配对值,以及如何从您正在使用的列表中命名变量?

python-3.x - 在 macOS 上安装 pwntools

pypi - 如何在 PyPI 上订阅包的更新?

python - `pip install foo-package==1.0.0` 今天下载的代码是否与昨天不同