【发布时间】:2020-05-18 22:18:21
【问题描述】:
我正在创建一个只有 1 个 pypi 依赖项的模块。这个依赖在 pypi 上有 2 个包。一个使用系统库,另一个打包该库的二进制分发。它们看起来像:
theirmodule
theirmodule-binary
我的模块依赖于theirmodule,但我希望我的模块的用户能够决定他们是否需要依赖项的 lib 版本或二进制版本。我在docs about Extras 中看到。我可以这样做:
setup(
name="MyModule",
...
extras_require={
"BIN": ["theirmodule-binary>=1.2"]
}
)
但是如果用户执行pip install mymodule[BIN],pip 将同时安装theirmodule 和theirmodule-binary。这将是一个冲突,因为两者都具有相同的基础导入字符串,例如:
import theirmodule
用于两者。如果不提供 2 个单独的 pypi 包,如何处理?
【问题讨论】:
标签: pip setuptools python-packaging