我有一个依赖于的python库importlib。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, ... )