Matplotlib को स्थापित करते समय मेमोरी एरर


91

मैं पायथन 2.7 का उपयोग कर रहा हूं, अगर मैं Matplotlib को स्थापित करने का प्रयास करता हूं तो मुझे यह त्रुटि मिल रही है यदि मैं "pip install matplotlib" का उपयोग करता हूं

 Exception:
  Traceback (most recent call last):
    File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 232, in main
      status = self.run(options, args)
    File "/usr/local/lib/python2.7/dist-packages/pip/commands/install.py", line 339, in run
      requirement_set.prepare_files(finder)
    File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 355, in prepare_files
      do_download, session=self.session,
    File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 782, in unpack_url
      session,
    File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 667, in unpack_http_url
      from_path, content_type = _download_http_url(link, session, temp_dir)
    File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 843, in _download_http_url
      _download_url(resp, link, content_file)
    File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 615, in _download_url
      for chunk in progress_indicator(resp_read(4096), 4096):
    File "/usr/local/lib/python2.7/dist-packages/pip/utils/ui.py", line 46, in iter
      for x in it:
    File "/usr/local/lib/python2.7/dist-packages/pip/download.py", line 580, in resp_read
      decode_content=False):
    File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/response.py", line 256, in stream
      data = self.read(amt=amt, decode_content=decode_content)
    File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/response.py", line 186, in read
      data = self._fp.read(amt)
    File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/cachecontrol/filewrapper.py", line 54, in read
      self.__callback(self.__buf.getvalue())
    File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/cachecontrol/controller.py", line 205, in cache_response
      self.serializer.dumps(request, response, body=body),
    File "/usr/local/lib/python2.7/dist-packages/pip/_vendor/cachecontrol/serialize.py", line 81, in dumps
      ).encode("utf8"),
  MemoryError"

समस्या क्या हो सकती है? मैं 16gb एसडी कार्ड के साथ रास्पबेरी पाई 2 का उपयोग कर रहा हूं। मेरे पास अभी भी 8 जीबी डेटा मुफ्त है लेकिन फिर भी यह त्रुटि हो रही है। कृप्या सहायता करे

जवाबों:


295

यह त्रुटि इसलिए सामने आ रही है, क्योंकि ऐसा लगता है कि पाइप का कैशिंग मैकेनिज्म पूरी फाइल को कैशिंग करने से पहले मेमोरी में पढ़ने की कोशिश कर रहा है ... जो सीमित-मेमोरी वाले वातावरण में समस्या पैदा करता है, क्योंकि matplotlib ~ 50mb है।

एक सरल समाधान, जब तक कि पाइप को एक स्थिर-स्थान कैशिंग एल्गोरिदम का उपयोग करने के लिए पैच नहीं किया जाता है, तब तक pipसाथ चलना है--no-cache-dir कैश से बचने के लिए:

$ pip --no-cache-dir install matplotlib

9
रास्पबेरी पाई पर यह समस्या थी। हल किया!
fdelia

7
रास्पबेरी पाई 2 ए पर भी यह मुद्दा था और इसने इसे हल किया!
8one6

2
मेरी समस्या को अपने आवारा बॉक्स में हल किया, हालाँकि मुझे समझ में नहीं आ रहा है कि मेरा योनि बॉक्स इतनी सीमित मेमोरी के साथ क्यों चल रहा है
जॉन्क्लॉवेल

1
रास्पबेरी पाई 3 बी + पर एक ही मुद्दे का सामना करना पड़ा और उपरोक्त निर्देशों का उपयोग करके हल किया गया।
चार्ल्स पून

1
एक बीगलबोन ब्लैक पर matplotlib स्थापित करने में इस समस्या का सामना करना पड़ा। इस समाधान ने इसे ठीक कर दिया। धन्यवाद!
डेविड स्टीन

31

ऐसा लगता है कि आपके पास खरोंच से matplotlib बनाने के लिए अपर्याप्त रैम है। उस पर काबू पाने के लिए, या तो स्वैप चालू करें:

# create swap file of 512 MB
dd if=/dev/zero of=/swapfile bs=1024 count=524288
# modify permissions
chown root:root /swapfile
chmod 0600 /swapfile
# setup swap area
mkswap /swapfile
# turn swap on
swapon /swapfile

या, यदि आपके पास आपके एसडी कार्ड पर रास्पियन स्थापित है, तो आप रिपॉजिटरी से matplotlib स्थापित कर सकते हैं:

apt-get install python-matplotlib

नमस्ते, मैं गमागमन की कोशिश की, लेकिन अभी भी मुझे वही त्रुटि मिल रही है।
निशांत आनंद

अगर मैं "sudo apt-get install matplotlib" देता हूं तो यह कहता है कि "E: पैकेज मैटलपोटलिब का पता लगाने में असमर्थ" क्या किया जाना चाहिए? मैं Linux के लिए नया हूँ इसलिए pls मदद
nishanth anand

मुझे पैकेज का सटीक नाम याद नहीं है (और घर पर मेरी आरपीआई है), लेकिन आप इसे जारी करके पता लगा सकते हैं sudo apt-cache search matplotlib। यह आपको सटीक नाम देना चाहिए।
एंड्रे सोबोलेव

क्या आपने matplotlib के लिए apt-cache खोजने की कोशिश की है? ऐसा लगता है कि पैकेज का सही नाम है python-matpolotlib
एंड्रे सोबोलेव

नमस्ते, स्वैप विधि ने मेरे लिए Pi 2, और मानक 8Gb SD के साथ काम किया। SD आकार में प्रक्रिया के लिए कोई अंतर नहीं होना चाहिए, क्योंकि केवल स्वैप के लिए थोड़ा उपयोग किया जाता है। बस एक विस्तार, मैं sudoएंड्री के जवाब में सभी स्वैप निर्माण और हेरफेर कमांड को संपादित करता हूं । मैं इस गाइड के रूप में एक आभासी वातावरण का उपयोग कर रहा हूं: ( pyimagesearch.com/2015/02/23/… ) जो वास्तव में मददगार साबित हुआ है।
ह्यू बरनार्ड

6

--no-cache-dirमेरे लिए काम नहीं किया। मैंने अभी सभी ऐप्स बंद कर दिए हैं और तभी मैं इंस्टॉलेशन को पूरा करने में सक्षम था।

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