如何从 setup.py 中的多个索引中获取包?

How to require packages from multiple indexes in setup.py?

我正在开发一个 python 库,它依赖于来自 PyPI 的包 A 和来自另一个索引的 B。鉴于 B 已在 PyPI 中列出,我如何指定依赖项?

使用 setuptools,您可以指定 dependency_links 作为在 setup.py 脚本中调用 setuptools.setup 的参数。见 setuptools documentation on "Dependencies that aren’t in PyPI".

不过,这在使用 pip 安装时效果不佳。目前没有很好的方法可以有充分的理由对您的包的用户强制执行此操作。相反,您必须充分记录您的包,以便指示您的包的用户使用正确的 pip 选项安装它:--index-url, --extra-index-url, or --find-links.

未测试: 为了让您的软件包用户感到舒适,您可以提供 constraints.txt file 总结前面提到的 pip 选项。