放弃对旧版python的支持¶
标准支持删除对旧版python的支持 核心元数据规范 1.2通过“requires python”属性进行规范。
元数据1.2+客户端(如PIP9.0+)将通过匹配当前的python运行时并将其与包元数据中所需的版本进行比较,从而遵守此规范。如果它们不匹配,它将尝试安装支持该python运行时的最后一个包分发。
通过修改包元数据中的“requires python”属性,可以使用此机制删除对旧版本python的支持。
本指南专门针对 setuptools ,其他包装工具,如 flit
可能提供类似的功能,但用户需要查阅相关文档。
定义所需的python版本¶
1。下载最新版本的安装工具¶
确保在生成源分发版或二进制分发版之前,先更新安装工具并安装捆绳。
步骤:
pip install --upgrade setuptools twine
setuptools 版本应高于24.0.0。
2。为支持的python发行版指定版本范围¶
您可以指定版本范围和排除规则,如至少python 3。或者,python 2.7、3.4及更高版本。
实例:
Requires-Python: ">=3"
Requires-Python: ">2.7,!=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
设置这些值的方法在调用 setup 在setup.py脚本中。这将根据您在中提供的参数插入所需的python元数据值。 python_requires .
from setuptools import setup
setup(
# Your setup arguments
python_requires='>=2.7', # Your supported Python ranges
)
三。发布前验证元数据¶
在python源包(您下载的zip或tar gz文件)中有一个名为pkg-info的文本文件。
此文件由distutils或 setuptools 当它生成源包时。该文件包含一组键和值,键列表是Pypa标准元数据格式的一部分。
您可以看到生成文件的内容,如下所示:
tar xfO dist/my-package-1.0.0.tar.gz my-package-1.0.0/PKG-INFO
在发布包之前,请验证以下各项是否到位:
如果升级正确,元数据版本值应为1.2或更高。
Requires python字段已设置,并与setup.py中的规范匹配。
删除python版本¶
一旦您发布了一个包含requires-python元数据的包,就可以进行进一步的更新,将该python运行时从支持中删除。
必须按此顺序执行,以使自动故障恢复工作。
例如,您发布了RequiresPython:“>=2.7”作为包的版本1.0.0。
如果要将版本字符串更新为“>=3.5”,并发布包的新版本2.0.0,则从版本2.7运行PIP 9.0+的任何用户都将安装包的版本1.0.0,并且任何大于等于3.5的用户都将收到版本2.0.0。