在一些情况下,存在各实现一个共同的API的各种模块(在我的情况下,旧纯Python elementtree
,cElementTree
,lxml.etree
,和内置xml.etree
) 。我可以使用ElementTree
编写模块来尝试这些选项中的每一个,并根据我自己的首选顺序采用第一个选项 - 但我找不到指定仅在setup.py
中只安装其中一个的任何信息。我想写一些看起来像这样的东西:setuptools的依赖性规范“这些中的至少一个”
setup(
...,
install_requires="""
elementtree | cElementTree | lxml
""",
...
)
这是,或者类似的东西吗?
这个问题实际上发生在我们正在使用的开源第三方模块中,所以我一直在寻找一个解决方案作为补丁贡献,并且希望避免公开羞辱模块开发者的表象。我们的其他代码依赖于lxml,并且在Py26中运行,所以我们至少有两个可用的实现 - 不是名为'elementtree'的实现。 – dcrosta 2010-01-08 01:46:38