--use-mirrors的规范替代方案

10

PyPI有时不太可靠。我遇到过许多令人不幸的情况,由于pip无法安装我的要求之一(lxml是最臭名昭着的罪犯),导致Travis-CI构建失败。

各种在线资源都推荐使用--use-mirrors标志,这迄今为止解决了我的问题。然而,出于许多很好的原因,--use-mirrors已被弃用

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

发布于2014-01-01的1.5版本的发行说明建议使用其中一个标志-i-index-url--extra-index-url。这很好,但是我们遇到了与--use-mirrors相同的一些问题,即这些镜像无法得到保证。

PyPI镜像列表已经被删除,留下了一些非官方镜像。因此,我只能面临选择:继续使用--use-mirrors,希望在其被删除之前上述问题中的一个得到解决,或选择一个镜像并希望它能正常工作且可信。

是否有广泛认可和可信的镜像?或者有广泛认可和可靠的替代方案吗?基本上,我应该如何处理这个问题?


1
请注意,如果您可以使用基于容器的基础架构,则travis支持caching - o11c
1个回答

3
坦白地说,我从未遇到过你所描述的问题 - 所以我不知道如何解决公共pypi索引的问题。
然而,作为一般惯例;当我们部署时(因为我们部署到的系统没有访问互联网的权限),我可以推荐以下做法:
1. 创建本地pypi镜像,并在那里发布您的软件包。您可以用许多方法来完成这个过程。简单的方法是使用basket,或者您可以像我们一样创建自己的pypi镜像(请参阅:如何创建自己的pypi?,获取一些建议)。
2. 使用wheel。这是我们正在迁移的原因,因为安装过程非常简单,不需要依赖其他服务器。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接