如何缓存下载的PIP包

Cer*_*rin 60 python pip

你如何防止PIP重新下载以前下载的软件包?我正在测试matplotlib的安装,这是一个11MB的软件包,依赖于几个特定于发行版的软件包.每次我跑pip install matplotlib,它都会重新下载matplotlib.我怎么阻止这个?

Fli*_*imm 110

对于新的Pip版本:

默认情况下,较新的Pip版本现在缓存下载.请参阅此文档:

https://pip.pypa.io/en/stable/reference/pip_install/#caching

对于旧Pip版本:

创建一个名为的配置文件~/.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)

这是否回答你的问题?

  • 从pip 8`下载--download-cache`,pip应默认使用缓存,可以用`--no-cache-dir'关闭 (10认同)
  • 请查看[pip-accel](https://pypi.python.org/pypi/pip-accel).这是解决这个问题的新的更好的解决方案. (2认同)

okm*_*okm 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
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)