如何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