matplotlib를 1.2 또는 1.3으로 업그레이드

matplotlib를 1.2 또는 1.3으로 업그레이드

Python matplotlib를 업그레이드하려고 하는데 어떤 이유로 업그레이드할 수 없습니다.

원래는 다음을 사용하여 matplotlib를 설치했는데 apt-get install python-matplotlib 잘 작동했습니다. 그러나 기본값은 버전 1.1입니다.

그런 다음 웹사이트에서 1.2 소스 코드를 다운로드한 다음 tar.gz를 추출하고 실행했습니다.

sudo python setup.py build
sudo python setup.py install

이 모든 작업을 마친 후 python2.7idle에 가서 다음을 입력했습니다.

import matplotlib
print matplotlib.__version__
>>>1.1.1

그래서 업데이트가 안 된 것 같습니다. matplotlib를 버전 1.2 이상으로 업데이트하는 방법은 무엇입니까?

답변1

이는 PYTHONPATH 환경 변수에 문제가 있거나 누락되었을 수 있습니다. 를 사용하면 matplotlib가 디렉터리 접두사 apt-get에 설치됩니다 . /usr따라서 전체 패키지가 다음과 같이 설치된 것을 찾을 수 있습니다 /usr/lib/python2.7/site-packages/matplotlib.

다음 명령을 사용하여 이를 확인할 수 있습니다. dpkg -L python-matplotlib.

matplotlib 소스코드를 별도로 다운로드 받은 후 위의 명령어를 이용하여 직접 빌드하고 설치하면 접두사에 설치하게 됩니다 /usr/local. 시스템 라이브러리( /usr접두사에 있음)가 관리 dpkg되고 다른 종속 패키지가 손상되거나 관리되지 않는 파일이 방치될 것을 두려워하여 이러한 파일을 덮어쓰거나 방해하고 싶지 않기 때문에 괜찮습니다.

이제 여러분은 아마도 시스템에 설치된 Python을 사용하고 있을 것입니다. (모두?) Linux 배포판에 사전 설치되어 제공되는데 왜 그렇지 않습니까? 그러나 그것이 설치된 위치입니다 /usr. Python의 기본 모듈 검색 경로는 설치된 위치의 접두사를 기반으로 구축됩니다. 따라서 시스템 Python(으로 구성됨 --prefix=/usr)은 기본적으로 에 설치된 모듈만 검색하고 에 /usr/lib/python2.7수동으로 설치된 모듈은 완전히 무시합니다 /usr/local/lib/python2.7.

따라서 이 문제를 해결하기 위한 몇 가지 가능한 해결책은 다음과 같습니다.

  1. (이렇게 하지 마세요!) --prefix=/usr.

  2. PYTHONPATH포함하도록 편집하십시오. /usr/local/lib/python2.7/site-packages 이것은 자신의 컴퓨터일 때 실행 가능한 솔루션입니다. 패키지를 루트로 설치한 다음 PYTHONPATH 환경 변수를 편집 ~/.bashrc하거나 내보냅니다. /etc/bash.bashrc다중 사용자 컴퓨터나 서버의 경우 모든 패키지를 루트 사용자가 수동으로 업그레이드해야 하기 때문에 이는 다소 혼란스럽습니다. 이는 항상 편리하지 않을 수 있습니다. 이 문제는 시스템 패키지 관리자에게 맡기는 것이 가장 좋습니다.

  3. easy_installmatplotlib(또는 라이브러리 설치 )삐삐) 시스템 Python은 어딘가에서 그것을 찾을 것입니다. 이 경우 이미 설치되어 있다고 불평할 수 있습니다(따라서 먼저 제거해야 합니다 apt-get).

    easy_install -m matplotlib
    

    PyPi는 일반적으로 최신 Python 패키지 버전을 유지합니다. 거기에 패키지를 업로드해야 하는 경우(p*ss) 이유를 알 수 있으므로 이것이 최신 Python 패키지를 얻을 수 있는 안정적인 방법입니다. distribute이 패키지를 설치 해야 합니다 apt-get. 를 사용하세요.

  4. 사용자 디렉터리에 matplotlib 1.2를 설치합니다. 나중에 저장소가 필요한 버전으로 업데이트되면 삭제할 수 있습니다.

    python setup.py install --user

후자의 방법이 제가 가장 좋아하는 방법입니다. 최근에야 발견했지만 시스템이나 사용자별 구성 파일이나 환경 변수를 편집할 필요가 없고 시스템 패키지를 방해하지 않으며 사용자 sudo설치가 필요하지 않습니다.

이렇게 하면 ~/.local/lib/python2.7Linux에 matplotlib가 설치되고 ~/Library/...다른 배포판에도 설치될 수 있습니다. 어느 쪽이든 이 방법은 모든 플랫폼에서 지원되며 사용자별 모듈은 시스템 전체 모듈보다 우선적으로 로드됩니다.

이제 matplotlib를 즐겨보세요. 이것은 훌륭한 가방입니다!

PS 루트로 패키지를 빌드하지 마십시오. 나는 루트가 소유한 파일을 사용자 디렉토리에 보관하는 것은 나쁜 습관이라고 생각합니다.

PPS Python 인터프리터에서 matplotlib(또는 다른 Python 모듈)이 로드되는 위치를 확인할 수 있습니다. 예를 들어:-

>>> import matplotlib
>>> print matplotlib.__file__
/usr/lib/python2.7/site-packages/matplotlib/__init__.pyc

관련 정보