【发布时间】:2019-03-15 05:10:59
【问题描述】:
我正在使用 emacs 和 anaconda。
我的 init.el 中有这个:
(setenv "WORKON_HOME" "/home/user/anaconda3/envs/")
还有康达在我的路上:
# added by Anaconda3 installer
export PATH="/home/user/anaconda3/bin:$PATH"
但是 emacs 找不到我的 conda 环境,我知道它应该能够做到这一点..
所以,当我运行C-c C-p 来启动一个新会话和C-c C-c 时,它无法使用ModuleNotFoundError 导入我安装在conda 环境中的包。
由于我已将此添加到我的路径中,但它仍然无法正常工作,我正在尝试解决此问题,并且仍然能够从 emacs 运行我的 conda 应用程序。
我可以用M-x shell在emacs中打开一个shell,然后source activate myenv,然后运行python。
我现在想将C-c C-c 复制到 /this/ shell。如何将此 shell buffer 标记为 python 进程以将我的 file.py 的文本发送到 C-c C-c,而不仅仅是一个 shell shell ?
更新1
我还查看了以下参考资料:
- https://emacs.stackexchange.com/questions/20092/using-conda-environments-in-emacs
- How does conda-env list / conda info --envs find environments?
但是这两个包都不适合我。当我尝试时,我仍然得到:
conda-env-list
*Conda envs*
产生一个空白缓冲区。
这适用于 pyvenv-workon:
pyvenv-workon
Work on: (empty)
这些环境非常存在,如果我无法运行我的代码,就无法将 emacs 用作 python IDE。
【问题讨论】:
-
不完全确定,但看看 Emacs 的
exec-path变量,这是 Emacs 搜索要运行的程序的地方。至于加载虚拟环境,对我有用的是调用pyvenv-activate。