Python 如何防止pip上的包丢失?

Python 如何防止pip上的包丢失?,python,virtualenv,pip,Python,Virtualenv,Pip,我们在构建系统中大量使用virtualenv和pip来隔离Python交付。到目前为止,一切都是完全自动化的,运转良好 几天前,出现了一个问题:一个间接依赖项被移动到一个私有的bitbucket存储库,pip开始提示输入登录名/密码。这对于持续集成工具来说是非常引人注目的。。。在某个时候,pypi中删除了相同的依赖项,因此我们无法再安装我们的环境 几句话之后,pip开始提示输入用户/密码,这很快就让人感到痛苦(所有的自动化工具都永远挂着…)。从今天起,它就失败了 我想知道怎样才能有更可靠的东西。

我们在构建系统中大量使用virtualenv和pip来隔离Python交付。到目前为止,一切都是完全自动化的,运转良好

几天前,出现了一个问题:一个间接依赖项被移动到一个私有的bitbucket存储库,pip开始提示输入登录名/密码。这对于持续集成工具来说是非常引人注目的。。。在某个时候,pypi中删除了相同的依赖项,因此我们无法再安装我们的环境

几句话之后,pip开始提示输入用户/密码,这很快就让人感到痛苦(所有的自动化工具都永远挂着…)。从今天起,它就失败了

我想知道怎样才能有更可靠的东西。我想任何人都可以从pypi中删除包,完全依赖它是不安全的,对吗?我当时正在使用缓存,我认为这就足够了,但显然它总是试图连接到互联网来检查包的存在

这里推荐什么?我是否应该手动下载所有内容,并仅通过我的setup.py中的变量“dependency_links”引用本地路径?还是有更聪明的东西

谢谢!
Emmanuel

事实上,还有一个更严重的危险:pip通过纯HTTP下载包,即使您强制它使用HTTPS,它也无法检查id证书是否有效(因为Python stdlib也没有该功能)。中间的人可以用你容易安装的东西(有时用SUDO)掩盖预期的包。这就是为什么在生产环境中,最好只安装单独下载和已检查的软件包

避免发布链接,因为它们可能在一段时间后变得不可用,用户很难重新构建问题。谢谢!最后,我安装了一个本地pypi服务器,可以对其进行监视和维护,并且运行良好:-)