pip install Matplotlib 사용 중 메모리 오류


91

Python 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 SD 카드와 함께 raspberry Pi 2를 사용하고 있습니다. 나는 여전히 8GB 데이터를 무료로 가지고 있지만 여전히이 오류가 발생합니다. 친절하게 도와주세요

답변:


295

이 오류는 pip의 캐싱 메커니즘이 파일을 캐싱하기 전에 전체 파일을 메모리로 읽으려고 시도하기 때문에 발생합니다. matplotlib가 ~ 50MB이므로 제한된 메모리 환경에서 문제가 발생합니다.

핍은 일정한 공간 캐싱 알고리즘을 사용하는 패치 될 때까지 간단한 해결책은, 실행하는 것입니다 pip으로 --no-cache-dir캐시를 피하기 위해 :

$ pip --no-cache-dir install matplotlib

9
Raspberry Pi 에서이 문제가 발생했습니다. 해결되었습니다!
fdelia

7
또한 Raspberry Pi 2A 에서이 문제가 발생하여 해결되었습니다!
8one6

2
내 방랑 상자는 제한된 메모리와 실행되는 이유를 이해하지 않습니다하지만, 내 방랑 상자에 내 문제를 해결
johnklawlor

1
Raspberry Pi 3B +에서 동일한 문제가 발생하고 위의 지침을 사용하여 해결되었습니다.
Charles Poon

1
BeagleBone Black에 matplotlib를 설치하는 동안이 문제가 발생했습니다. 이 솔루션은 문제를 해결했습니다. 감사합니다!
David Stein

31

matplotlib를 처음부터 빌드하기에 RAM이 부족한 것 같습니다. 이를 극복하려면 스왑을 켜십시오.

# 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

또는 SD 카드에 raspbian을 설치 한 경우 저장소에서 matplotlib를 설치할 수 있습니다.

apt-get install python-matplotlib

안녕하세요, 스와핑을 시도했지만 여전히 동일한 오류가 발생합니다.
nishanth anand

"sudo apt-get install matplotlib"를 제공하면 "E : 패키지 matplotlib를 찾을 수 없습니다"라는 메시지가 표시됩니다. 어떻게해야합니까? 그래서 도움이 PLS 리눅스에 새로운 오전
nishanth 아난드

나는 패키지의 정확한 이름을 기억하지 못하지만 (집에 내 RPi가 있음) sudo apt-cache search matplotlib. 정확한 이름을 제공해야합니다.
Andrey Sobolev 2015

matplotlib에 대한 apt-cache 검색을 시도해 보셨습니까? 패키지의 올바른 이름은 python-matpolotlib.
안드레이 소볼 레브

안녕하세요, 스왑 파일 방법은 Pi 2 및 표준 8Gb SD에서 저에게 효과적이었습니다. SD 크기는 약간만 스왑에 사용되기 때문에 절차에 차이가 없어야합니다. 세부 사항 sudo은 Andrey의 대답에서 모든 스왑 생성 및 조작 명령을 처리했습니다. 이 가이드로 가상 환경을 사용하고 있습니다. ( pyimagesearch.com/2015/02/23/… ) 정말 도움이되었습니다.
Hugh Barnard

6

--no-cache-dir나를 위해 일하지 않았다. 모든 앱을 닫고 나서야 설치를 마칠 수있었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.