Python любая из многих зависимостей
Время от времени я сталкиваюсь с ситуацией, когда у меня есть пакет, который может зависеть от пакета A или B.
Например, мой проект зависит от пакета с именем spam
, если этот проект переименован в pyspam
, мой проект может зависеть от spam
или pyspam
.
Я не могу определить (или найти), как я определял бы такие зависимости в setup.py. Что является общепринятым способом решения этой проблемы?
EDIT: Я хотел бы определить зависимости в setup.py
. Что-то вроде этого:
from setuptools import setup
setup(
name='myproject',
install_requires=[
'spam || pyspam'
]
)
Ответы
Ответ 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