问题
From time to time I come across a situation where I have a package that can depend on either package A or B.
For example, my project depends on a package called spam
, if this project is renamed to pyspam
, my project can either depend on spam
or pyspam
.
I cannot figure out (or find) how I would define such dependencies in setup.py. What is a commonly accepted way to solve this?
EDIT: I would like to define the dependencies in setup.py
. Something like this:
from setuptools import setup
setup(
name='myproject',
install_requires=[
'spam || pyspam'
]
)
回答1:
You can check to see if the package is available, and decide which to use based on that. (I hope I understood your question correctly).
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
来源:https://stackoverflow.com/questions/27486589/python-any-of-many-dependencies