今天我一直在尝试将更多与 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 内容都指向正确的解释器?