setuptools“至少其中一个”依赖项规范

2024-09-28 19:07:14 发布

您现在位置:Python中文网/ 问答频道 /正文

在某些情况下,有不同的模块,每个模块实现一个公共API(在我的例子中,旧的纯pythonelementtreecElementTreelxml.etree,以及内置的xml.etree)。我可以使用ElementTree编写模块来尝试这些选项中的每一个,并根据我自己的偏好顺序选择存在的第一个选项——但是我找不到任何关于指定必须在setup.py中安装其中一个的信息。我想写些像这样的东西:

setup(
    ...,
    install_requires="""
        elementtree | cElementTree | lxml
    """,
    ...
)

这是可能的,还是类似的?在


Tags: 模块pyapi顺序选项setup情况xml
2条回答

你可以试着在设置.py公司名称:

install_requires = ["elementree"]

try:
    import cElementTree
    install_requires = []
except ImportError:
    try:
        import lxml
        install_requires = []
    except ImportError:
        # etc for remaining equivalent modules

setup(
    install_requires = install_requires,
    # rest of setup parameters
)

如果没有安装任何等效的包,这将基本上安装elementree包作为依赖项。在

我不这么认为,但是,如果您使用的是一个相当新的Python,elementtree是标准Python库的一部分,为什么您担心它可能不存在呢?(我知道这对于其他几个可能实现的API来说是个问题,我只是想知道您是否真的需要它来实现您的特定用例)。在

相关问题 更多 >