Max*_* R. 6 python pip virtualenv
我经常不得不从a重新创建虚拟环境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
Run Code Online (Sandbox Code Playgroud)
像平均约20秒决定它将使用缓存包,然后安装很快.这是很多时候你必须安装几十个包(实际上足以写这个问题).
后台发生了什么?它们是针对在线包的某种完整性检查吗?
有没有办法加快速度?
编辑:看:
time pip install -v Django==1.4
Run Code Online (Sandbox Code Playgroud)
我明白了:
real 1m16.120s
user 0m4.312s
sys 0m1.280s
Run Code Online (Sandbox Code Playgroud)
完整的输出在这里http://pastebin.com/e4Q2B5BA.看起来pip花了他的时间寻找有效的下载链接,而它已经有一个有效的缓存http://pypi.python.org/packages/source/D/Django/Django-1.4.tar.gz.
有没有办法先查找缓存,如果版本匹配则停在那里?
在花了一些时间研究pip内部并描述一些软件包安装后,我得出的结论是,即使使用下载缓存,pip也会对每个软件包执行以下操作:
现在pip有一个下载URL,如果配置了则检查下载缓存文件夹,如果存在以url命名的本地文件,则最终决定不使用此url.
我的猜测是我们可以通过预先检查缓存来节省大量时间,但我对所有pip代码库没有足够的理解来启动所需的修改.当然,它只适用于确切的版本号要求,==
因为有了其他约束,比如>=
或者>
,我们仍然希望抓取网页寻找最新版本.
然而,我能够做出一个小的拉取请求,如果合并将节省我们一些时间.
归档时间: |
|
查看次数: |
1649 次 |
最近记录: |