如何caching下载的PIP包

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

您可以使用特定的环境variablesPIP_DOWNLOAD_CACHE,并使其指向将存储包的目录。 如果要再次安装,将从这个目录中取出。

似乎还有一个PIP pip --download-cache的附加选项应该做类似的事情,但我从来没有尝试过自己。 举个例子,为了避免每次重新下载matplotlib ,你需要做以下的事情:

 pip install --download-cache /path/to/pip/cache matplotlib 

这是否回答你的问题?

对于新的PIP版本:

较新的PIP版本默认现在caching下载。 请参阅此文档:

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

对于旧的PIP版本:

创build一个名为~/.pip/pip.conf的configuration文件,并添加以下内容:

 [global] download_cache = ~/.cache/pip 

在一个命令中:

 printf '[global]\ndownload_cache = ~/.cache/pip\n' >> ~/.pip/pip.conf 

你可以

 # 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 

然后通过解压安装它,然后安装python setup install

pip install --download-cache以类似的方式工作,具有额外的检查function:首先search来自web的目标包的最新或指定版本,如果search结果为是,并且在download-cache指定的目录中有caching包caching,将使用caching的包,而不是下载。 例如,

 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