Python any of many dependencies

≯℡__Kan透↙ 提交于 2019-12-03 16:48:33

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!