小编典典

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

python

我的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:但也许有更好的方法可以做到。


阅读 882

收藏
2021-01-20

共1个答案

小编典典

这只是一个列表,因此您必须在上面的某个地方有条件地建立一个列表。通常会执行以下操作。

import sys

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

setup(
# [...]
    install_requires=REQUIRES,
# [...]
)
2021-01-20