पिप का `-नो-कैश-दिर` किसके लिए अच्छा है?


111

मैंने हाल ही --no-cache-dirमें एक डॉकर फ़ाइल में उपयोग किए जाने को देखा है । मैंने उस झंडे को पहले कभी नहीं देखा है और मदद उसे समझा नहीं रही है:

 --no-cache-dir              Disable the cache.
  1. प्रश्न: कैश्ड क्या है?
  2. प्रश्न: कैश का उपयोग किस लिए किया जाता है?
  3. प्रश्न: मैं इसे निष्क्रिय क्यों करना चाहूंगा?

q3 पर longshot: कुछ रैम को बचाने के लिए?
Ma0

4
प्रलेखन उस पर बहुत व्यापक है: pip.pypa.io/en/stable/reference/pip_install/#caching
emredjan

2
पहला Google परिणाम इसका बहुत अच्छा विवरण देता है इसका उपयोग pip.pypa.io/en/stable/reference/pip_install
mikea

3
जब आप एक डॉक इमेज बना रहे होते हैं तो आप चाहते हैं कि वह हल्की हो। यह कैश्ड फ़ाइलों के साथ छवि को फूलने से बचाने में मदद करता है।
विक्टर लामोइन

2
@mikea विडंबना यह है कि, pip no-cache-dirअब यह पहला परिणाम है।
बजे hlongmore

जवाबों:


90
  1. कैश्ड है : छिपकर या भविष्य में उपयोग के लिए स्टोर करना
  2. के लिए इस्तेमाल होता है
  • .whlआपके द्वारा स्थापित किए गए मॉड्यूल की स्थापना फ़ाइलों ( , आदि) को स्टोर करें
  • .tar.gzएक्सपायर फाइल्स को स्टोर करें ( जब आदि) एक्सपायर न होने पर फिर से डाउनलोड करने से बचें
  1. संभव कारण आप कैश अक्षम करना चाहते हैं:
  • आपके पास अपनी हार्ड ड्राइव पर जगह नहीं है
  • पहले अप्रत्याशित सेटिंग्स के pip installसाथ चलाते हैं
    • उदाहरण के लिए:
      • पहले चला export PYCURL_SSL_LIBRARY=nssऔरpip install pycurl
      • नया रन चाहते हैं export PYCURL_SSL_LIBRARY=opensslऔरpip install pycurl --compile --no-cache-dir
  • आप जितना संभव हो उतना छोटा डॉकरी चित्र रखना चाहते हैं

प्रलेखन के लिंक

https://pip.pypa.io/en/stable/reference/pip_install/#caching - @emredjan https://pip.pypa.io/en/stable/reference/pip_install/ - @mikea


मैं इंस्टालेशन फ़ाइलों को क्यों स्टोर करना चाहूंगा?
मार्टिन थोमा

7
बार-बार डाउनलोड करने से बचने के लिए। मान लीजिए, आप एक मॉड्यूल की स्थापना रद्द करते हैं, जब आप इसे अगली बार स्थापित करते हैं, तो यह कैश्ड डायर की फाइलों का उपयोग करेगा
स्टैक

7
आह अच्छा। तो एक डॉकटर छवि के लिए, जो केवल तैनाती के लिए उपयोग की जाती है (इसलिए "कोई" मैनुअल "क्रियाएं") उपयोग करने का कोई कारण नहीं है --no-cache-dir, सही?
मार्टिन थूमा

6
Yes @MartinThoma, एक प्रोडक्शन डॉकटर इमेज पर, आप pip --no-cache-dir का उपयोग करना चाहते हैं, क्योंकि कोई भी किसी भी पैकेज को स्थापित नहीं करेगा, और स्टोरेज स्पेस और भी अधिक मूल्यवान है ...
Ozgur Ozturk

2
Haha मुझे नहीं लगता कि OP का मतलब "कैश्ड 'का क्या मतलब है?" प्रश्न 1. के लिए
Arel

50

मुझे लगता है कि --no-cache-dirजब आप डॉकर छवियों का निर्माण कर रहे हैं तो उपयोग करने का एक अच्छा कारण है । Docker छवि में कैश आमतौर पर बेकार है, और आप निश्चित रूप से कैश को अक्षम करके छवि का आकार छोटा कर सकते हैं।


7
आप ENV PIP_NO_CACHE_DIR=1अजगर 3.6.10 और उच्च छवियों के लिए डॉक में उपयोग कर सकते हैं
लेवोन

9

पाइप कैश को अक्षम करने का एक अन्य कारण - यदि आप एक उपयोगकर्ता के रूप में पाइप चलाते हैं जो अभी तक मौजूद नहीं है, तो उनकी होम डायरेक्टरी बनाई जाएगी, लेकिन रूट के स्वामित्व में।

हमारे साथ ऐसा तब होता है जब अमेजन एएमआई का निर्माण चेरोट में होता है - पाइप को एक उपयोगकर्ता के रूप में चलाया जा रहा है जो बिल्डर मशीन पर मौजूद है, लेकिन चेरोट जेल में नहीं जहां एएमआई का निर्माण किया जा रहा है। यह समस्याग्रस्त है क्योंकि विशिष्ट उपयोगकर्ता अब वह नहीं कर सकता है जो अभी-अभी बनाया गया था। एसएचएस निर्देशिका उनके द्वारा पठनीय नहीं है।

मैं किसी अन्य कारण से नहीं सोच सकता कि पाइप को एक ऐसे उपयोगकर्ता के रूप में चलाया जाएगा, जो हालांकि मौजूद नहीं है, इसलिए यह बहुत ही किनारे का मामला है।


4

अपने डॉकटर छवि को कम करें अगर आप अपने डॉकटरफाइल में अजगर निर्भरताएं रखते हैं, जैसा कि आपके निजी रजिस्ट्रियों / कलाकृतियों या आपके परिनियोजन सर्व में आकार सीमा हो सकती है।


0

यदि मैं --no-cache-dirविकल्प का उपयोग नहीं करता हूं तो मुझे कुछ पाइप पैकेजों की स्थापना के लिए अनुमति त्रुटि मिलती है ।

Building wheels for collected packages: pyyaml, bottleneck, nvidia-ml-py3
  WARNING: Building wheel for pyyaml failed: [Errno 13] Permission denied: '/home/user/.cache/pip/wheels/b1'
  WARNING: Building wheel for bottleneck failed: [Errno 13] Permission denied: '/home/user/.cache/pip/wheels/92'
  WARNING: Building wheel for nvidia-ml-py3 failed: [Errno 13] Permission denied: '/home/user/.cache/pip/wheels/7f'

chown /.cacheफ़ोल्डर ने किसी कारण से मदद नहीं की, लेकिन --no-cache-dirयह ठीक काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.