如何防止 PIP 重新下载以前下载的包?我正在测试 matplotlib 的安装,这是一个 11MB 的包,它依赖于几个发行版特定的包。每次我运行pip install matplotlib
时,它都会重新下载 matplotlib。我该如何阻止这个?
问问题
39342 次
3 回答
113
注意:仅缓存通过HTTPS下载的车轮。如果您在普通的旧 HTTP 上使用自定义 repo,缓存将被禁用。
对于新的 Pip 版本:
默认情况下,较新的 Pip 版本现在缓存下载。请参阅此文档:
https://pip.pypa.io/en/stable/cli/pip_install/#caching
对于旧的 Pip 版本:
创建一个名为 的配置文件~/.pip/pip.conf
,并添加以下内容:
[global]
download_cache = ~/.cache/pip
在一个命令中:
printf '[global]\ndownload_cache = ~/.cache/pip\n' >> ~/.pip/pip.conf
于 2013-04-11T12:24:35.607 回答
61
您可以使用特定的环境变量PIP_DOWNLOAD_CACHE并使其指向将存储您的包的目录。如果要再次安装它们,它们将从该目录中获取。
PIP 似乎还有一个额外的选项pip --download-cache
应该做类似的事情,但我自己从未尝试过。matplotlib
对于您的示例,为避免每次重新下载,您将执行以下操作:
pip install --download-cache /path/to/pip/cache matplotlib
这是否回答你的问题?
于 2012-04-26T15:16:35.460 回答
8
你可以
# 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
此外,您可以手动下载包
pip install -d dir_for_packages matplotlib
然后通过 un-tar 和python setup install
更高版本安装它。
类似的pip install --download-cache
工作方式w/额外检查:它首先从web搜索目标包的最新或指定版本,如果搜索有结果并且在指定的目录中有download-cache
缓存包,将使用缓存包代替的下载。例如,
pip install --download-cache . pymongo
将 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
于 2012-04-26T16:13:28.787 回答