2012-12-04 3 views
4

나는 이맥스를 파이썬 용으로 배우려하고 있는데, 모듈 가져 오기 문제로 인해 내 프로젝트 중 일부가 작동하지 않는다는 것을 발견했다. 즉 SciPy 나 NumPy를 가져올 수 없다. 나는 PYTHONPATH 환경 변수를 변경하는 것과 같이 여기에서 묻는 관련 질문을 위해 제안 된 솔루션을 시도했지만 아무 것도 좋지 않았습니다. 터미널에서 IDLE 및 일반 인터프리터를 사용하는 경우 가 sys.path에 내가 알아 낸 다른 버전이 사용되는 비교 갖는 기본 시스템 인터프리터로이맥스에서 적절한 Python과 PYTHONPATH 변수 설정하기

Python 2.7.3 (default, Aug 1 2012, 05:14:39) 
[GCC 4.6.3] on linux2 
Type "copyright", "credits" or "license()" for more information. 
==== No Subprocess ==== 
>>> from pprint import pprint as pp 
>>> import sys 
>>> pp(sys.path) 
['/home/mench', 
'/usr/bin', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-linux2', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PIL', 
'/usr/lib/python2.7/dist-packages/gst-0.10', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/pymodules/python2.7', 
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client', 
'/usr/lib/python2.7/dist-packages/ubuntuone-client', 
'/usr/lib/python2.7/dist-packages/ubuntuone-control-panel', 
'/usr/lib/python2.7/dist-packages/ubuntuone-couch', 
'/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol'] 

IDLE 및 Python-2.7.2에서 파이썬 2.7.3

Python 2.7.2 (default, Mar 1 2012, 22:28:45) 
[GCC 4.4.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from pprint import pprint as pp 
>>> import sys 
>>> pp(sys.path) 
['', 
'/home/mench', 
'/opt/alps/lib', 
'/usr/local/lib/python27.zip', 
'/usr/local/lib/python2.7', 
'/usr/local/lib/python2.7/plat-linux2', 
'/usr/local/lib/python2.7/lib-tk', 
'/usr/local/lib/python2.7/lib-old', 
'/usr/local/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/site-packages'] 

질문 : 어떻게 Emacs가 적절한 버전의 Python을 사용할 수 있습니까? 우분투 12.04에서 GNU emacs-23.3.1을 사용하고 있습니다. 문제에 대한 내 가정이 틀리면 문제를 해결하십시오.

답변

5

문제는 python 실행 파일이 잘못 선택되었다고 생각합니다. 일반적으로 모듈을 설치하는 경우 (pip, setup.py 등) 모듈 용 sys.path이 적절하게 설정됩니다.

/usr/local/bin/usr/bin 앞에 오는 python 2.7.2를 수동으로 설치 했으므로 문제는 보통 $PATH입니다. 이것이 터미널의 기본 파이썬이 2.7.2 인 이유입니다. 특정 경로 (예 : /usr/bin/python)에서 Python을 사용하고 싶다고 Emacs에 명시 적으로 알리기 위해서는 python-mode를위한 Emacs 설정이 필요합니다.

Emacs를위한 몇 가지 파이썬 모드가 있지만 Emacs 23을 사용하는 것처럼 "오래된"python.el을 사용하고있는 것 같습니다. Python 실행 파일을 설정하려면 Emacs 구성에서이 작업을 추가하는 것이 좋습니다 (하지만 나는 그래서 그것을 작동하는지 모르겠습니다이 파이썬 모드를 사용하지 않습니다).

(setq python-python-command "/usr/bin/python") 

당신이 코드를 평가 한 후 파이썬 파일을 다시 열어야합니다. 또는 Emacs를 재부팅하기 만하면됩니다.

새로운 python.el을 사용하는 경우 /usr/bin/python-shell-exec-path에 추가해야합니다. python-mode.el을 사용하고 있다면, 그것은 (setq py-shell-local-path "/usr/bin/python" py-use-local-default t)이라고 생각합니다.

+0

대단히 감사합니다. 처음에는 이맥에서의 나의 무지 때문에 나를 위해 명확하지 않았습니다. 필자는 파이썬 모드를 설정하기 위해 사용했던 다른 패치들에 대해서도 꽤 혼란 스러웠다. 이제 모든 것이 잘됩니다. 이 기사를 읽은 모든 사람들에게이 답변을 올리시겠습니까? 정확하고 유용했습니다. – mench

+1

python-mode.el의 경우 설명 된대로이 두 변수를 설정하면 내 IPy 모드가 가리키는 python 실행 파일이 변경되지 않았습니다. 이것은 python 2.7.6, ipython 5.1.0, python-mode version 6.2.1, 이맥스 24.5.1에서 우분투 14.04 LTS, BTW에서 동작합니다. 내가 뭘 더 해볼까? – fpt