12

今天我一直在尝试将更多与 Python 相关的模式带入我的 Emacs 配置中,但我运气不佳。

首先我注意到的是,根据 Emacs 的启动方式(终端与桌面),它决定使用的解释器是不同的。

  • 从 KDE 菜单启动:M-! which python给出/usr/bin/python

  • 从终端启动:M-! which python给出~/local/bin/python

我可以接受这一点,因为我的.bashrc将~/local/bin附加 到路径中,我猜 KDE 默认会忽略它。我可以解决这个问题,但是我不明白的是,如果我激活一个 virtualenv,我希望M-!哪个 python 指向 ~/project.env/bin/python但是它仍然指向~/local/bin/python .

因此,当我M-x py-shell得到~/local/bin/python时,如果我尝试对 M-x py-execute-buffer驻留在 virtualenv 中的包中的模块进行操作,py-shell会抱怨不知道 virtualenv 中的模块。

py-python-command设置为 "~/project.env/bin/python" 似乎在加载完所有内容后没有任何效果。

所以我想我的问题的关键是,如何让所有与 python 相关的 emacs 内容都指向正确的解释器?

4

2 回答 2

8

因此,python-shell 似乎通过选择环境设置来做正确的事情,而 py-shell 却没有。python-shell 由 python.el 提供,py-shell 由 python-mode.el 提供,有与此相关的错误报告等,所以我暂时不打算使用 py-shell。我想我会关闭这个循环,以防谷歌机器出于某种原因认为这是一个高排名项目。

于 2010-02-21T20:50:44.037 回答
4

Emacs有一个virtualenv 模式。它需要 Emacs 23.1 或更高版本。

这是使用 virtualenv 为 Python shell 设置虚拟环境的次要模式,同时支持 python-mode.el 和 python.el。

于 2011-06-06T14:22:09.803 回答