python - 如何为一组特定的 python 版本创建 Python 轮? py2.py3-none-any.whl 太宽泛

标签 python pip distutils pypi

我有一个适用于 Python 2.4-2.7 的包。 3.2-3.7。 请注意,这并不适用于所有 Python 2 或 Python 3,而是特定版本。

这个包也支持具有不同源代码的Python 2.4和2.5。

我一直在为每个版本分发鸡蛋,因为这是非常具体的,而且我 setup.py bdist_wheel 创建的内容过于宽泛,无法匹配我不想匹配的 Python 版本。

当我创建一个轮子时,我会使用扩展名py2.py3-non-any.whl,这对于Python 2.4和2.5来说是错误的。 (压缩包也是如此)。

PyPi 只允许一个 tarball,所以现在我使用非 2.4、2.5 源代码。如果能够包含 2.4 2.5 源代码那就太好了。嗯,也许我可以把它做成 zipper ? (可能不会)。

如何通知 setup.py 我只想要一个 py35-non-any.whl?或者 py2 指定为 2.6 或 2.7? py3 仅适用于 3.2 及更高版本。

或者更一般地说,有什么简单的方法可以进行设置,以便无论运行什么 python 版本,pip 都会选择正确的 pypi 文件?

最佳答案

当您运行 setup.py bdist_wheel 时,它会创建一些过于笼统的内容,头脑简单的人可以执行以下操作:只需重命名该文件即可。

我在 Pypi 的发行版上尝试过这个,它有效:轮子比 tarball 更受欢迎,并且它会拉下该版本的轮子。 随后运行该程序即可。

在我的具体情况下,setup.py bdist_wheel 创建了 foo-1.2.3-py2.py3-none-any.whl 但这是错误的,因为不想要 Python 2 和 Python 3 的所有版本,但需要一些非常特定的版本。

但是,例如,如果我希望将其调整为仅适用于 Python 2.7 和 Python 3.6,我将重命名/复制为:

foo-1.2.3-py27-none-any.whl
foo-1.2.3-py36-none-any.whl

对于如何实现可能还有其他想法和想法,所以我对此保持开放。如果这确实是最简单的事情,那么如果 setup.py 中有一个选项或任何处理 bdist_wheel 的选项,以便它可以为您重命名,那就太好了。

命名约定中是否允许范围,以便可以指定 3.5-3.7 ?或者可以以某种方式给出一个像 py25.py26.py27 这样的列表吗?

关于python - 如何为一组特定的 python 版本创建 Python 轮? py2.py3-none-any.whl 太宽泛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46687955/

相关文章:

python - 使用 python 的 ** 运算符和 * 运算符时进行签名

python - pip 不知道 numpy 安装在哪里

python - distutils 扩展参数——包括 vs 依赖 vs 源?

python - 有没有办法编写创建和执行代码的 Python 脚本?

python - 在 python 中验证 XML 签名的最佳方法是什么?

java - Twisted 吞吐量限制降低

python - anaconda安装github包时没有这样的文件或目录错误

python - 导入 skimage 不是有效的 Win32 应用程序 python3

python - 使用 pip 时如何设置 distutils 使用的日志级别?

python - 保存从 setup.py 生成的安装日志