--use-mirrors 的规范替代

Canonical replacement for --use-mirrors

PyPI 可能不可靠。不幸的是,我有很多 Travis-CI 构建失败,因为 pip 无法安装我的要求之一(lxml 是最臭名昭著的违规者)。

各种网上资源推荐--use-mirrors标志,目前已经解决了我的问题。但是,--use-mirrorsdeprecated,原因有很多。

不幸的是,如 link 中所述,删除标志的主要原因之一是新的 CDN 支持的 PyPI 不应该有相同的问题。确实如此。我的构建仍然存在问题,除非我使用 --use-mirrors.

,否则我仍然无法使用 pip 可靠地安装软件包

2014-01-01 版 1.5 的 release notes 建议使用标志 -i-index-url--extra-index-url 之一。这很好,除了...我们 运行 遇到了 --use-mirrors 遇到的一些相同问题,即这些镜像不一定可信。

PyPI mirrors list has actually been removed, leaving us with some unofficial mirrors。因此,我有一个选择:继续使用 --use-mirrors 并希望上述问题之一在被删除之前得到解决,或者选择一个镜像并希望它有效且值得信赖。

是否有被广泛接受和信任的镜像?还是一个被广泛接受和信任的替代方案?基本上,我应该如何处理这个问题?

坦率地说,我从未遇到过您所描述的问题 - 所以我不知道如何解决 public pypi 索引的问题。

但是,作为一般做法;我可以推荐以下是我们在部署时使用的(因为我们部署的系统无法访问 Internet):

  1. 创建一个本地 pypi 镜像,并在那里发布您的包。您可以通过多种方式做到这一点。 basket or you can do what we did and create your own pypi mirror (see: How to roll my own pypi? 的简单方法提供一些建议)。

  2. 使用wheel。这就是我们要迁移到的地方,因为安装过程非常简单,不需要依赖其他服务器。

我知道拥有一个全局 pypi 索引非常方便,但作为部署构建链的一部分,我会将其用作备份;其中一个是在我无法控制的网络上(因此它可能无法访问或不可靠);更重要的是,我的系统在构建过程中可能不需要访问互联网。