2012-04-26 9 views
53

पीआईपी को पहले से डाउनलोड किए गए पैकेज को फिर से डाउनलोड करने से कैसे रोकें? मैं matplotlib के संस्थापन का परीक्षण कर रहा हूं, एक 11 एमबी पैकेज जो कई डिस्ट्रो-विशिष्ट पैकेजों पर निर्भर करता है। हर बार जब मैं pip install matplotlib चलाता हूं, तो यह matplotlib को फिर से डाउनलोड करता है। मैं इसे कैसे रोकूं?डाउनलोड पीआईपी पैकेज कैश कैसे करें

उत्तर

54

आप एक विशिष्ट पर्यावरण चर PIP_DOWNLOAD_CACHE का उपयोग कर सकते हैं और इसे एक निर्देशिका में इंगित कर सकते हैं जहां आपके पैकेज संग्रहीत किए जाएंगे। अगर उन्हें दोबारा स्थापित किया जाना है, तो उन्हें इस निर्देशिका से लिया जाएगा।

पीआईपी pip --download-cache के लिए एक अतिरिक्त विकल्प भी प्रतीत होता है जो कुछ ऐसा करना चाहिए, लेकिन मैंने इसे कभी भी कोशिश नहीं की है। आपके उदाहरण के लिए, से बचने के लिए फिर से डाउनलोड करने के लिए हर बार matplotlib, आप क्या करेंगे निम्नलिखित:

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

है कि आपके सवाल का जवाब है?

+0

मुझे यकीन नहीं है कि पीआईपी यह भी करता है, लेकिन ' easy_install' अगर आपके पास स्थानीय निर्देशिका में '.tar' (या संभवतः ज़िप?) फ़ाइल के रूप में पैकेज है, तो वह पहले उस का उपयोग करने का प्रयास करेगा। –

+2

[पीपी-एक्सेल] (https://pypi.python.org/pypi/pip-accel) पर भी देखें। यह इस समस्या का एक नया और बेहतर समाधान है। – qris

+8

पाइप 8 '--download-cache' के रूप में गिरा दिया गया था, पीपी को डिफ़ॉल्ट रूप से कैश का उपयोग करना चाहिए जिसे '--no-cache-dir' – Ski

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 बाद से यह स्थापित करें।

उसी तरह w/अतिरिक्त जाँच में pip install --download-cache काम करता है: यह सबसे पहले, वेब से लक्ष्य पैकेज के नवीनतम या निर्दिष्ट संस्करण के लिए खोज करता है, तो खोज परिणाम है और वहाँ निर्देशिका download-cache, द्वारा निर्दिष्ट पैकेज कैश किया गया है डाउनलोड करने के बजाय कैश किए गए पैकेज का उपयोग किया जाएगा। नई पिप संस्करणों के लिए

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

: उदाहरण के लिए,

pip install --download-cache . pymongo 

pymongo पैकेज वर्तमान निर्देशिका पर डाउनलोड हो जाएगा अब डिफ़ॉल्ट रूप से

नई पिप संस्करणों कैश डाउनलोड।

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

वर्ष पिप संस्करणों के लिए:

~/.pip/pip.conf नाम के एक विन्यास फाइल बनाएँ, और निम्न सामग्री जोड़ें:

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

[global] 
download_cache = ~/.cache/pip 

एक आदेश में इस दस्तावेज़ देखें

+0

के साथ बंद किया जा सकता है कूल, आसान और पैरामीटर जोड़ने को याद रखने की आवश्यकता नहीं है हर बार। मैंने जीबी की फिर से डाउनलोड करने वाली गंदगी का बहुत कम बर्बाद कर दिया। धन्यवाद। – erm3nda

+0

धन्यवाद, यदि आप आवश्यकताओं को डाउनलोड करने के लिए पीपी 3 का उपयोग करते हैं और पीले रंग की चेतावनी प्राप्त करते हैं, तो आप mkdir ~/.cache/pip कर सकते हैं तो चेतावनी दूर हो जाएगी। –