我正在学习为Python开发Emacs,我发现我的一些项目因为模块导入问题而不能工作,即SciPy或NumPy没有被导入。我尝试过针对这里提出的相关问题提出的解决方案,例如更改PYTHONPATH环境变量,但没有一个是好的。比较了搜索路径在终端上使用IDLE和plain解释器时,我发现使用了不同的版本: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作为默认的系统解释器
^{pr2}$问题是:如何让Emacs使用正确版本的Python? 我在ubuntu12.04上使用gnuemacs-23.3.1 如果我对这个问题的假设是错误的,请纠正我
我认为问题是选择了错误的python可执行文件。如果以正常方式安装模块(pip,设置.py等等)。在
问题是您在
/usr/local/bin
中手动安装了python2.7.2,它通常位于$PATH
中的/usr/bin
之前。这就是为什么终端中的默认python是2.7.2。要显式地告诉Emacs您希望在特定路径(即/usr/bin/python
)中使用python,您需要一些针对python模式的Emacs配置。在Emacs有一些python模式,但我猜您使用的是“old”Python.el,因为您使用的是Emacs23。要设置python可执行文件,我认为将其添加到Emacs配置中就可以了(但是我从不使用这种python模式,所以我不确定它是否有效):
在计算完这段代码之后,您需要重新打开python文件。或者干脆重启Emacs。在
如果你用新的Python.el,您必须将
/usr/bin/
添加到python-shell-exec-path
。如果您使用python-模式.el,我猜是(setq py-shell-local-path "/usr/bin/python" py-use-local-default t)
。在相关问题 更多 >
编程相关推荐