2011-12-17 3 views
0

macports에서 matplotlib를 설치했으며, Python의 버전은 2.7.1입니다.osx lion에서 matplotlib를 사용하고 싶습니다.

$ sudo port install py27-matplotlib py27-matplotlib-basemap 

다음 샘플 프로그램을 작성했습니다.

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

from pylab import * 
plot([1,2,3]) 
show() 

그러나 "no module named pylab"오류 로그와 함께 제대로 작동하지 않았습니다.

그리고 easy_install을 시도했습니다.

$ sudo easy_install matplotlib 

이 경우 내 프로그램이 오류없이 올바르게 작동합니다.

두 경우 (macports 및 easy_install)의 차이점은 무엇입니까?

matplotlib의 버전이 두 가지 경우에 동일하다고 생각합니다.

macport의 경우 포함 경로를 재정의해야합니까?

도와 주시겠습니까 ??

+0

당신이 읽었습니까? http://matplotlib.sourceforge.net/faq/installing_faq.html#os-x-notes – Blender

답변

4

호환되는 환경을 보장하기 위해 MacPorts Python 패키지는 자동으로 MacPorts Python을 설치합니다. 기본적으로 /opt/local/bin/python2.7을 통해 호출 할 수 있습니다. MacPorts가 설치된 곳은 그 곳입니다 matplotlib 외. /usr/bin/python은 Apple 제공 시스템 인 Python 2.7.1을 호출하고, sudo easy_install을 실행했을 때 Apple에서 제공 한 easy_install 명령을 시스템 Python과 연관 시켰습니다. 즉, 이제는 Python 2.7 인스턴스가 두 개 설치되었으며 각각은 matplotlib의 별도 버전으로 설치되었습니다. 거기에는 아무런 문제가 없지만 아마도 하나 또는 다른 것을 고집하고 싶을 것입니다. SHELL 경로가 /opt/local/bin/usr/bin 앞에 있고 MacPorts port select python python27 명령을 사용하도록하여 MacPorts Python 2.7을 기본값으로 만들 수 있습니다.

0

Ned Deily가 언급했듯이 MacPorts는 OS X에서 자체 버전을 제공하기는하지만 별도의 Python을 설치하기 때문에 문제가 발생합니다.

나는 이런 문제를 피하기 위해 MacPorts 대신 Homebrew을 사용할 것을 제안합니다. Homebrew는 가능한 경우 OS X에서 사용 가능한 패키지를 사용합니다.

또 다른 제안은 pip을 사용하여 easy_install을 대체하고 제거 패키지를 지원하는 Python 패키지를 관리하는 것이 더 좋습니다. 파이썬 패키지를 관리하기 위해 (MacPorts, Debian의 apt과 같은) 패키징 시스템을 사용하면 Python 패키지가 다른 C 라이브러리에 의존 할 때 의존성을 해결할 수 있다는 이점이 있습니다. 그러나 일부 Python 패키지가 MacPorts 또는 apt에 포함되어 있지 않은 경우 easy_install 또는 pip으로 해결해야합니다. 그리고 동시에 두 패키지 시스템을 사용하여 파이썬 패키지를 관리하는 것은 좋지 않습니다.

+0

OP가 가지고 있었던 유일한 문제는 부정한 세방 라인을 사용하거나 그렇지 않으면 시스템 파이썬을 호출하는 것입니다. 맥 포트 (MacPorts) MacPorts는 아직 포트로 제공되지 않은 Python 패키지를 설치하기위한'pip' 포트를 제공합니다. 그리고 Homebrew를 사용하는 것은 호환성 문제에 대한 마법의 해결책이 아니며 SO에 관한 많은 질문을 목격하게됩니다. Apple에서 제공 한 시스템 Python을 사용하는 것이 좋지 않은 경우가 종종 있습니다. –

관련 문제