我有一个适用于 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 及更高版本。
最佳答案
当您运行 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/