规范替代 - 使用镜子

时间:2015-02-09 05:19:16

标签: python pip pypi mirror

PyPI可能不可靠。我有一个不幸的Travis-CI版本失败,因为pip无法安装我的一个要求(lxml是最臭名昭着的罪犯)。

各种在线资源推荐--use-mirrors标志,迄今已为我解决了这个问题。但是,--use-mirrorsdeprecated,原因有很多。

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

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

PyPI mirrors list实际上已被移除,留下了一些unofficial mirrors。因此,我有一个选择:继续使用--use-mirrors并希望上面的问题之一在被删除之前得到修复,或者选择一个镜像并希望它有效且值得信赖。

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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