2013-10-23 117 views
7

目前,我们正在通过在install_requires属性下在setup.py中提及它们的版本和依赖项来设置\在系统上安装某些软件包。我们的系统需要python 2.7。有时候,用户有多个版本的Python,比如2.6.x和2.7,它说的一些软件包已经可用,但实际上在2.6站点软件包列表下的系统上。另外一些用户只有2.6,如何从setup.py执行,或者是否有其他方式说只有python 2.7,我们希望setup.py更新的所有包只有2.7。我们在机器上至少需要2.7来运行我们的代码。在setup.py中执行python版本

谢谢! Santhosh

回答

8

由于通过pip(和pip本身由Python解释器中运行)安装setup.py文件,不可能指定在setup.py文件要使用的Python版本。

取而代之的是看看this answersetup.py: restrict the allowable version of the python interpreter它有一个基本的解决方法来停止安装。

在你的情况下,代码是:

import sys 
if sys.version_info < (2,7): 
    sys.exit('Sorry, Python < 2.7 is not supported') 
+0

version_info直到2.7+才引入命名组件,它只是一个元组。提交了一个编辑。 – 2upmedia

+3

为什么你不能简单地'如果sys.version_info <(2,7)'? Python按照词汇顺序比较元组,所以这对于((3,4,1)')来说可以正常工作。 –

2

当前最佳实践(写这篇文章在2018年3月)是直接在setup.py添加python_requires参数的setup()电话:

from setuptools import setup 

[...] 

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