【发布时间】:2012-09-06 17:38:38
【问题描述】:
我经常需要从requirements.txt 重新创建虚拟环境,而我已经在使用$PIP_DOWNLOAD_CACHE。这仍然需要很多时间,我注意到以下几点:
Pip 在以下两行之间花费了大量时间:
Downloading/unpacking SomePackage==1.4 (from -r requirements.txt (line 2))
Using download cache from $HOME/.pip_download_cache/cached_package.tar.gz
平均大约需要 20 秒来决定是否要使用缓存的包,然后安装速度很快。很多时候你必须安装几十个包(实际上足以写这个问题)。
后台发生了什么? 它们是针对在线包进行某种完整性检查吗?
有没有办法加快速度?
编辑:查看:
time pip install -v Django==1.4
我明白了:
real 1m16.120s
user 0m4.312s
sys 0m1.280s
完整的输出在这里http://pastebin.com/e4Q2B5BA。看起来 pip 正在花时间寻找有效的下载链接,而它已经拥有 http://pypi.python.org/packages/source/D/Django/Django-1.4.tar.gz 的有效缓存。
有没有办法先查找缓存,如果版本匹配就停在那里?
【问题讨论】:
-
我想知道这是否与问题 #304“安装 -U foo 重新安装 foo 的依赖项,即使它们已经满足”(github.com/pypa/pip/issues/304)有关。这可能完全不相关,但它是另一个奇怪的 PIP 问题。
-
在这种情况下,我只是在干净的 virtualenv 中安装新包,没有升级。
-
是的,我只是想建议,因为升级代码会在网络上检查/获取包,即使它确实不应该 - 在“使用缓存”代码中可能有一些东西一样的。
-
啊,对,是同一种行为。
标签: python virtualenv pip