PyPI可能不可靠。我有一个不幸的Travis-CI版本失败,因为pip无法安装我的一个要求(lxml是最臭名昭着的罪犯)。
各种在线资源推荐--use-mirrors
标志,迄今已为我解决了这个问题。但是,--use-mirrors
有deprecated,原因有很多。
不幸的是,正如链接中所提到的,删除标志的一个主要原因是新的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
并希望上面的问题之一在被删除之前得到修复,或者选择一个镜像并希望它有效且值得信赖。
是否有广泛接受且值得信赖的镜像?还是广泛接受和信任的替代方案?基本上,我该如何处理这个问题?
答案 0 :(得分:2)
但是,作为一般做法;我可以推荐下面的部署(我们部署的系统无法访问Internet):
创建一个本地pypi镜像,并在那里发布您的包。你可以通过很多方式做到这一点。使用basket
的简单方法或您可以执行我们所做的操作并创建自己的pypi镜像(请参阅:How to roll my own pypi?以获取一些建议)。
使用wheel
。这就是我们要迁移的内容,因为安装过程非常简单,不需要依赖其他服务器。
我知道拥有全局pypi索引是一个很大的便利,但作为部署构建链的一部分,我会将其用作备份;因为它在网络上我无法控制(因此它可能无法访问或不可靠);更重要的是,我的系统在构建过程中可能不需要访问Internet。