我有一个适用于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源也很好。嗯,也许我可以做拉链? (可能不是)。
如何通知setup.py我只需py35-non-any.whl
?或py2指定为2.6还是2.7?而py3仅为3.2或更高。
或者更一般地说,什么是设置的简单方法,以便pip将选择正确的pypi文件,无论正在运行什么python版本?
答案 0 :(得分:1)
当你运行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
这样的列表?