Подтвердить что ты не робот

Python любая из многих зависимостей

Время от времени я сталкиваюсь с ситуацией, когда у меня есть пакет, который может зависеть от пакета A или B.

Например, мой проект зависит от пакета с именем spam, если этот проект переименован в pyspam, мой проект может зависеть от spam или pyspam.

Я не могу определить (или найти), как я определял бы такие зависимости в setup.py. Что является общепринятым способом решения этой проблемы?

EDIT: Я хотел бы определить зависимости в setup.py. Что-то вроде этого:

from setuptools import setup

setup(
    name='myproject',
    install_requires=[
        'spam || pyspam'
    ]
)
4b9b3361

Ответ 1

Вы можете проверить, доступен ли пакет, и решить, какой из них использовать на основе этого. (Надеюсь, я правильно понял ваш вопрос).

from setuptools import setup

imp_spam = "spam"
try:
    import spam
except:
    imp_spam = "pyspam"

setup(
    name='myproject',
    install_requires=[imp_spam]
)

Ответ 2

try:
    import ham
except ImportError:
    import spam