2012-04-26 40 views
53

如何防止PIP重新下載以前下載的包?我正在測試matplotlib的安裝,這是一個11MB的軟件包,依賴於幾個特定於發行版的軟件包。每次運行pip install matplotlib時,它都會重新下載matplotlib。我該如何阻止?如何緩存已下載的PIP包

回答

54

您可以使用特定環境變量PIP_DOWNLOAD_CACHE並使其指向您的包將被存儲的目錄。如果要再次安裝它們,它們將從該目錄中取出。

似乎還有一個PIP pip --download-cache的附加選項,它應該做類似的事情,但我從來沒有嘗試過。對於你的榜樣,以避免重新下載每次matplotlib,你會做以下幾點:

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

是否回答你的問題?

+0

我不確定PIP是否也這樣做,但是用' easy_install',如果你在本地目錄下有一個'.tar'(或者大概是zip?)文件,它會首先嚐試使用那個文件。 – 2012-04-26 16:21:17

+2

請看[pip-accel](https://pypi.python.org/pypi/pip-accel)。這是一個新的更好的解決方案。 – qris 2014-10-02 13:47:49

+8

截至點8「 - 下載緩存」已被丟棄,點應默認使用緩存,可用'--no-cache-dir'關閉 – Ski 2016-01-31 18:06:02

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 

然後由聯合國焦油和python setup install以後安裝它。

pip install --download-cache作品以類似的方式瓦特/額外的檢查:它首先搜索來自網絡的目標包的最新版本或指定的版本,如果搜索結果,並有由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 
106

對於新的畫中畫版本:

較新的版本匹默認情況下,現在高速緩存下載。看到這個文檔:

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

對於老匹版本:

創建一個名爲~/.pip/pip.conf一個配置文件,並添加以下內容:

[global] 
download_cache = ~/.cache/pip 

在一個命令:

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

酷,簡單,不需要記住添加參數每一次。我浪費了很多GB的重新下載狗屎。謝謝。 – erm3nda 2016-01-04 08:58:38

+0

謝謝,如果您使用pip3下載需求並獲得黃色文本警告,您可以mkdir〜/ .cache/pip然後警告將消失。 – 2017-09-25 09:58:20