在emacs中从virtualenv指定python解释器

时间:2010-02-20 22:12:02

标签: python emacs virtualenv

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

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

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

  • 从终端发起: M-!哪个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东西指向正确的解释器?

2 个答案:

答案 0 :(得分:8)

所以看起来python-shell通过拾取环境设置做正确的事情,而py-shell却没有。 python-shell由python.el提供,py-shell由python-mode.el提供,有与之相关的bug报告等,所以我现在不打算使用py-shell。如果谷歌机器出于某种原因认为这是一个高排名的项目,我想关闭这个循环。

答案 1 :(得分:4)

有一个virtualenv mode for Emacs。它需要Emacs 23.1或更高版本。

  

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