有没有办法配置easy_install避免安装失败时再次下载文件?Easy_install缓存下载文件
回答
pip(http://pypi.python.org/pypi/pip/)是easy_install工具的替代品,可以做到这一点。
只需运行easy_install pip
并将环境变量PIP_DOWNLOAD_CACHE
设置为您希望pip存储文件的路径。 请注意,缓存不适用于从源代码库(如svn/git/hg/bzr)签出的依赖项。
然后使用pip install
代替easy_install
下面是使用PIP我的解决方案,甚至管理二进制安装包,并使用两个,Linux和Windows。并且根据要求,它将限制从PyPi下载到最低版本,并且作为额外的奖励,在Linux上,它允许加速重复安装通常需要编译几分之一秒的包。
安装需要几个步骤,但我的事情,这是值得做的。
PIP创建配置文件
PIP创建配置文件(在Linux上:〜/将该.pip/pip.conf,在Windows%HOME%\ PIP \ pip.ini)
我的人有此内容:
[global]
download-cache = /home/javl/.pip/cache
find-links = /home/javl/.pip/packages
[install]
use-wheel = yes
[wheel]
wheel-dir = /home/javl/.pip/packages
填充cache
DIR - 自动进入
的cache
目录将得到缓存的版本从PyPI将每次下载的数据,p的ip尝试从pypi获取一些包。它很容易得到它(不需要特别小心),但请注意,从点的角度来看,这些只是从PyPi下载的兑现数据,而不是包,所以如果您使用选项--no-index
,它将无法工作。
pip install --download
填充packages
DIR
的packages
dir是地方把真正的包文件。例如。我最喜欢的包plac
,我会做:
$点子安装 - 表格下载〜/将该.pip /包PLAC
和PLAC包文件将在该目录appeare。您甚至可以使用-r requirements.txt
文件一次对多个包执行此操作。
这些包甚至使用$ pip install --no-index <something>
。
防止在Linux上重复编译相同的程序包
例如, lxml
包需要编译,下载和编译可能需要45秒到几分钟。使用车轮格式,你可以在这里省下很多。
安装wheel
工具,如果你没有它尚未:
$ pip install wheel
为lxml
(假设造轮子,你已成功安装在过去lxml
- 它需要系统中的某些库要安装):
$ pip wheel lxml
这越过下载,编译,但最终导致LXML whl
文件中packgages
目录之中。
此后
$ pip install lxml
或甚至更快
$ pip install --no-index lxml
将采取秒的小数部分,因为它使用车轮格式化包。
从窗口设置EXE包准备轮包
(注:这甚至可以在Linux机器准备,没有编译,只有一些分装从exe文件到whl
。)
下载软件包一封来自PyPI的EXE格式,如:
$ wget的https://pypi.python.org/packages/2.7/l/lxml/lxml-3.2.3.win32-py2.7.exe#md5=14ab978b7f0a3382719b65a1ca938d33 $ DIR LXML-3.2.3.win32-py2.7.exe
将其转换为
whl
$轮转换LXML-3.2.3.win32-py2.7.exe $ DIR LXML-3.2.3.win32-py2.7.exe LXML-3.2。 3-cp27-NONE-win32.whl
测试:
$ PIP安装LXML
或
$ pip install --no-index lxml
应该很快。
请注意,wheel convert
可以对卵形格式的包进行完全相同的转换。
让easy_install
和setup.py install
重用你packages
目录
easy_install
和$ python setup.py install
似乎并没有提供下载缓存,但允许使用我们的包在我们packages
目录。
要为这两个工具做到这一点,编辑配置文件:
在Linux上:$HOME/.pydistutils.cfg
在Windows上:%HOME%\pydistutils.cfg
在我来说,我在这里:
[easy_install]
find_links = /home/javl/.pip/packages
这个配置甚至可以帮助pip install
调用的一些情况,当点试图在拖延一个包,声明依赖于其他的。由于它将此任务委托给setup.py
调用,但没有.pydistutils.cfg
配置,它将从PyPi下载文件。
不幸的是,在这种情况下轮盘格式不被支持(据我所知)。
- 1. 文件下载和缓存
- 2. AFNetworking缓存下载文件
- 3. easy_install下载目录
- 4. Firefox下载已缓存的文件
- 5. Android缓慢文件下载
- 6. 如何将下载的文件保存在缓存中android
- 7. android下载/缓存图像
- 8. 在iPhone缓存上下载?
- 9. 卸载Easy_Install
- 10. 下载文件“另存为”
- 11. 下载和存储文件
- 12. 缓存未过期,但文件仍将下载并覆盖
- 13. HTML离线应用程序缓存,清单下载的文件
- 14. DownloadManager:将文件下载到缓存分区
- 15. Jar文件在下载到缓存后只能打开一次
- 16. 从FTP下载文件而无需在VB.NET中缓存
- 17. Android下载管理器从缓存中复制文件
- 18. 使用PHP下载文件,跟踪,授权,缓存,MIME类型
- 19. 防止网络浏览器缓存文件被下载
- 20. Squid如何配置为缓存所有下载的文件?
- 21. 排除博客下载公共文件夹缓存
- 22. 发布构建加载缓存文件
- 23. 加载缓存清单文件
- 24. 组件模板的上下文缓存
- 25. 通过关闭缓存的.ashx文件下载文件时出现IE错误
- 26. C# - 缓存加载缓存
- 27. 为环回存储组件的下载方法启用缓存?
- 28. Azure:有没有办法缓存/重用从Azure blob存储下载的文件?
- 29. Yii2 redis缓存在文件缓存中
- 30. w3总缓存缓存文件夹
需要注意的一点是`pip不能安装二进制文件(_。egg files_)`。这在Windows平台上至关重要。 – 2011-05-10 09:09:11