【问题标题】:Canonical replacement for --use-mirrors--use-mirrors 的规范替换
【发布时间】:2015-04-08 19:24:09
【问题描述】:

PyPI 可能不可靠。不幸的是,由于 pip 未能安装我的要求之一(lxml 是最臭名昭著的罪犯),我的 Travis-CI 构建失败了。

各种在线资源推荐--use-mirrors标志,到目前为止它已经为我解决了这个问题。但是,--use-mirrorsdeprecated 有很多充分的理由。

不幸的是,如链接中所述,删除标志的主要原因之一是新的 CDN 支持的 PyPI 不应该有同样的问题。确实如此。我的构建仍然存在问题,除非我使用 --use-mirrors,否则我仍然无法使用 pip 可靠地安装软件包。

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

PyPI mirrors list 实际上已被删除,给我们留下了一些 unofficial mirrors。因此,我有一个选择:继续使用--use-mirrors 并希望上述问题之一在被删除之前得到解决,或者选择一面镜子并希望它可以正常工作并且值得信赖。

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

【问题讨论】:

  • 请注意,如果您可以使用基于容器的基础设施,travis 支持caching

标签: python pip pypi mirror


【解决方案1】:

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

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

  1. 创建一个本地 pypi 镜像,并在那里发布你的包。您可以通过多种方式做到这一点。 basket 的简单方法,或者您可以按照我们的做法创建自己的 pypi 镜像(请参阅:How to roll my own pypi? 获取一些建议)。

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

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

【讨论】:

    猜你喜欢
    • 2013-01-14
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多