Условно установка importlib на python2.6 - PullRequest
5 голосов
/ 23 февраля 2012

У меня есть библиотека Python, которая зависит от importlib.importlib находится в стандартной библиотеке в Python 2.7, но является сторонним пакетом для старых питонов.Обычно я храню свои зависимости в формате pip-Requirements.txt.Конечно, если я добавлю сюда importlib, произойдет сбой, если он установлен на 2.7.Как я могу условно установить importlib, только если он не доступен в стандартной библиотеке?

1 Ответ

10 голосов
/ 23 февраля 2012

Я не думаю, что это возможно с помощью 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,
    ...
)
...