簡體   English   中英

在emacs中設置適當版本的Python和PYTHONPATH變量

[英]Setting a proper version of Python and PYTHONPATH variable in emacs

我正在嘗試學習Emacs為Python開發的過程,我發現我的一些項目由於模塊導入問題而無法工作,即未導入SciPy或NumPy。 我已經嘗試過針對此處提出的相關問題提出的解決方案,例如更改PYTHONPATH環境變量,但沒有一個很好。 在使用IDLE和來自終端的普通解釋器時比較了sys.path ,我發現使用了不同的版本:IDLE中的Python-2.7.3

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']

和Python-2.7.2作為默認系統解釋器

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? 我在Ubuntu 12.04上使用GNU emacs-23.3.1,如果我對問題的假設錯誤,請更正我

我認為問題是選擇了錯誤的python可執行文件。 如果以常規方式(pip,setup.py等)安裝模塊,則通常會正確設置模塊的sys.path

問題是您已經在/usr/local/bin手動安裝了python 2.7.2,通常在$PATH /usr/bin之前。 這就是為什么您在終端中的默認python是2.7.2的原因。 要明確告訴Emacs您要在特定路徑(即/usr/bin/python )中使用/usr/bin/python ,需要為python-mode配置一些Emacs。

Emacs有一些python模式,但我猜您正在使用“舊的” python.el,就像您在使用Emacs 23一樣。要設置python可執行文件,我想在您的Emacs配置中添加它就可以了(但是我從不使用它python-mode,所以我不確定它是否有效。):

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

評估此代碼后,您將需要重新打開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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM