我有一个依赖于importlib的python库。 importlib在Python 2.7的标准库中,但是是用于较旧python的第三方程序包。我通常将依存关系保持在pip样式的requirements.txt中。当然,如果我将importlib放在此处,则如果安装在2.7上,它将失败。仅当标准库中没有importlib时,我才能有条件地安装它吗?

最佳答案

我认为使用pip和单个需求文件是不可能的。我可以想到两种选择:

多个需求文件

创建一个包含大多数软件包的base.txt文件:

# base.txt
somelib1
somelib2

并为python 2.6创建一个需求文件:
# py26.txt
-r base.txt
importlib

和一个2.7:
# py27.txt
-r base.txt

setup.py中的要求

如果您的库中有setup.py文件,则可以检查python的版本,或者仅检查该库是否已存在,如下所示:
# setup.py
from setuptools import setup
install_requires = ['somelib1', 'somelib2']

try:
    import importlib
except ImportError:
    install_requires.append('importlib')

setup(
    ...
    install_requires=install_requires,
    ...
)

关于python - 有条件地在python2.6上安装importlib,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9418064/

10-11 23:10