有一种正确的方法,但是很遗憾,pip仅在9.0.0版(2016年11月2日发布)中开始支持它,因此,使用pip较旧版本的用户将继续下载willy- nilly软件包,无论使用什么Python他们的版本。
在您的setup.py
文件中,传递setup()
一个python_requires
参数,该参数列出了您的软件包支持的Python版本,作为PEP 440版本说明符。例如,如果您的软件包仅适用于Python 3+,请输入:
setup(
...
python_requires='>=3',
...
)
如果您的软件包适用于Python 3.3及更高版本,但您仍不愿意支持Python 4,请编写:
setup(
...
python_requires='~=3.3',
...
)
如果您的软件包适用于Python 2.6、2.7和所有版本从3.3开始的Python 3,请输入:
setup(
...
python_requires='>=2.6, !=3.0.*, !=3.1.*, !=3.2.*, <4',
...
)
等等。
完成此操作后,将需要将setuptools的版本至少升级到24.2.0,以便处理python_requires
参数。早期版本只会在警告时忽略它。之后,您项目中所有构建的sdists和wheel都将包含相关的元数据,这些元数据告诉PyPI告诉pip它们是什么Python版本。