你如何防止PIP重新下载以前下载的软件包?我正在测试matplotlib的安装,这是一个11MB的软件包,依赖于几个特定于发行版的软件包.每次我跑pip install matplotlib,它都会重新下载matplotlib.我怎么阻止这个?
Fli*_*imm 110
默认情况下,较新的Pip版本现在缓存下载.请参阅此文档:
https://pip.pypa.io/en/stable/reference/pip_install/#caching
创建一个名为的配置文件~/.pip/pip.conf,并添加以下内容:
[global]
download_cache = ~/.cache/pip
Run Code Online (Sandbox Code Playgroud)
在一个命令中:
printf '[global]\ndownload_cache = ~/.cache/pip\n' >> ~/.pip/pip.conf
Run Code Online (Sandbox Code Playgroud)
Cha*_*guy 56
您可以使用特定的环境变量PIP_DOWNLOAD_CACHE,并使其指向将存储包的目录.如果要再次安装它们,它们将从此目录中获取.
PIP似乎还有一个额外的选项pip --download-cache应该做类似的事情,但我自己从未尝试过.对于您的示例,为避免matplotlib每次重新下载,您将执行以下操作:
pip install --download-cache /path/to/pip/cache matplotlib
Run Code Online (Sandbox Code Playgroud)
这是否回答你的问题?
你可以
# download and extract package to build path
pip install --no-install matplotlib
# the build path could be found by
pip install --help|grep Unpack\ packages\ into -A 2
# then rm pip-delete-this-directory.txt inside the build path
# this prevent pip from removing package from the build directory after install
# you could check the content of the file
rm build/pip-delete-this-directory.txt
# from now on you could install matplotlib quickly
# this uses single build directory
# and can speed up compiling by caching intermediate objects.
pip install --no-download matplotlib
Run Code Online (Sandbox Code Playgroud)
此外,您可以手动下载该程序包
pip install -d dir_for_packages matplotlib
Run Code Online (Sandbox Code Playgroud)
然后用un-tar安装它python setup install.
在pip install --download-cache以类似的方式W /额外的检查工作:它首先搜索来自网络的目标包的最新版本或指定的版本,如果搜索结果,并有由指定的目录缓存封装download-cache,缓存的包将被替代下载.例如,
pip install --download-cache . pymongo
Run Code Online (Sandbox Code Playgroud)
将pymongo软件包下载到当前目录:
http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fp%2Fpymongo%2Fpymongo-2.1.1.tar.gz
http%3A%2F%2Fpypi.python.org%2Fpackages%2Fsource%2Fp%2Fpymongo%2Fpymongo-2.1.1.tar.gz.content-type
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33898 次 |
| 最近记录: |