我在pypi上发布了一个软件包,版本为3.0.0。
setup.py
从未提及python_requires
指令。
在2.5.0版本中,有一个更改使包与python 2不兼容,直到现在都没有被注意到。
自2.5.0以来,pypi上发布了大量软件包。
现在,如果我想使用python2-pip安装软件包,我会安装最新的3.0.0版本,但它不起作用。
我需要pip来安装2.4.0版本,它没有兼容性问题。但我究竟该如何做到这一点呢?(事先不知道pip安装包==2.4.0-类似于使用pip的回溯机制(
如果我在3.1.0版本中指定指令python_requires=">=3.6"
,pip将回溯到3.0.0版本安装包,这将不起作用。
我能想到:
-
cx_Oracle方式。如果最低版本与安装要求不匹配,则在setup.py中引发异常,并指定如何安装正确的版本。
-
创建2个新版本。一个是2.4.0版本,基本上为3.1.0,带有
python_requires=">=2.7,<3.6"
,另一个是3.0.0版本,带有python_requires=">=3.6"
,版本为3.1.1
有更好的方法吗?
PyPI上有一个相对较新的功能:;"猛拉";与Python 2不兼容但未在元数据中正确指定的版本。
yanked发行版是安装程序始终忽略的发行版,除非它是唯一与版本说明符匹配的发行版(使用==
或===
(。
参见PEP 592-添加";Yank"支持Simple API以获取更多信息。事实上,您所描述的是政治公众人物动机部分所描述的主要场景。