如何确保 pip 从内部 pypi 获取包?

How do I ensure pip gets package from internal pypi?

我有一个带有 requirements.txt 的应用程序,其中包括许多第三方库以及一个必须从私有 pypi 实例下载的内部包。类似于:

boto3
flask
flask-restplus
gunicorn
an_internal_package

问题是 an_internal_package 被命名为一些很常见的东西并且遮挡了全局 pypi 上已经可用的包。例如,我们称它为 twisted。我 运行 遇到的问题是 requirements.txt 中的设置 --extra-index-url 似乎仍然从全局 pypi 中获取 twisted

--extra-index-url=https://some.internal.pypi.corp.lan
boto3
flask
flask-restplus
gunicorn
twisted # actually an internal package

如何指示 twisted 应该只从私有 pypi 而不是从全局加载?

可以参考index的解决方法,比较麻烦。你应该同时处理私有 pypi 和主 pypi。

而不是使用 --extra-index-url 你应该使用 --index-url.但是,我建议您阅读给定的 link

您可以 link 直接转到内部索引上的包:

boto3
flask
flask-restplus
gunicorn
https://some.internal.pypi.corp.lan/simple/twisted/Twisted-19.2.0.tar.bz2

这具有固定依赖项的效果,但无论如何这通常被认为是最佳实践。