56

setup.py目前,我们正在通过在install_requires属性下提及它们的版本和依赖关系来在系统上设置\安装一些包。我们的系统需要 Python 2.7。有时,用户在他们的系统上有多个版本的 Python,比如 2.6.x 和 2.7,它说一些包已经可用,但实际上在 2.6 站点包列表下可用的系统上。还有一些用户只有 2.6,如何从 Python 2.7 强制执行setup.py或有任何其他方式说只有 Python 2.7,我们要setup.py更新的所有包都只适用于 2.7。我们要求机器上至少有 2.7 才能运行我们的代码。

谢谢!桑托什

4

2 回答 2

219

当前的最佳实践(截至 2018 年 3 月撰写本文时)是python_requires直接在setup()调用中添加参数setup.py

from setuptools import setup

[...]

setup(name="my_package_name",
      python_requires='>3.5.2',
      [...]

请注意,这需要 setuptools>=24.2.0 和 pip>=9.0.0;有关更多信息,请参阅文档

于 2018-02-13T23:22:22.947 回答
16

由于setup.py文件是通过安装的pip(并且pip它本身由 python 解释器运行),因此无法指定在setup.py文件中使用哪个 Python 版本。

相反,请查看 setup.py 的这个答案:限制python 解释器的允许版本,它有一个基本的解决方法来停止安装。

在您的情况下,代码将是:

import sys
if sys.version_info < (2,7):
    sys.exit('Sorry, Python < 2.7 is not supported')
于 2013-10-23T07:05:12.410 回答