setup.py中的install_requires取决于安装的Python版本

时间:2011-05-21 08:46:00

标签: python setuptools

我的setup.py看起来像这样:

from distutils.core import setup

setup(
    [...]
    install_requires=['gevent', 'ssl', 'configobj', 'simplejson', 'mechanize'],
    [...]
)

在Python 2.6(或更高版本)下,ssl模块的安装失败,并显示:

ValueError: This extension should not be used with Python 2.6 or later (already built in), and has not been tested with Python 2.3.4 or earlier.

是否有一种标准方法只为特定的python版本定义依赖项?当然,我可以用if float(sys.version[:3]) < 2.6:来做,但也许有更好的方法。

1 个答案:

答案 0 :(得分:14)

这只是一个列表,所以在你上面的某个地方你必须有条件地建立一个列表。 通常会做类似跟随的事情。

import sys

if sys.version_info < (2 , 6):
    REQUIRES = ['gevent', 'ssl', 'configobj', 'simplejson', 'mechanize'],
else:
    REQUIRES = ['gevent', 'configobj', 'simplejson', 'mechanize'],

setup(
# [...]
    install_requires=REQUIRES,
# [...]
)