能否通过设置环境变量让 conda 切换虚拟环境

参考这个帖子 Emacs builtin mode 功能介绍 - #83,来自 Youmu eshell 则是完全由 elisp 实现的 shell,语法与与 bash/zsh 的语法不完全一致,所以不支持 conda 命令?

anaconda-mode 和 conda 没啥关系(我也不知道他为啥取这个名字),是提供代码导航,补全等功能的一个包,虽然现在可能更建议用 lsp(看个人喜好)。

conda.el 这个包才是帮助在 Emacs 中与 conda 环境交互的,具体使用请阅读 README,你先确保能通过 M-x conda-env-activateM-x conda-env-deactivate activate 或 deactivate,再考虑自动的事情 GitHub - necaris/conda.el: Emacs helper library (and minor mode) to work with conda environments

另外如果只是希望命令行自动切换,也可以使用 direnv 这个工具

1 个赞

谢谢了,我是被anaconda-mode的名字误导了。

conda.el官方说明里,把下面的语句 (custom-set-variables '(conda-anaconda-home “~/anaconda3/”)) 换成下面这个 (setq conda-anaconda-home (expand-file-name “~/anaconda3”)) 就可以用了。第一个句式为何会出错? 现在可以M-x conda-env-activate RET quantaxis RET了,但是一直在loading

custom-set-variables 一般通过 M-x customize 设定,不手动修改,你就用 setq 好了。确定 anaconda 路径是你的,别的就不知道为啥一直 loading 了,我这边正常。

loading完毕了,现在手动M-x conda-env-activate RET quantaxis RET都正常了。M-x eshell RET仍然不能使用conda命令

你加了这两句了么:

;; if you want interactive shell support, include:
(conda-env-initialize-interactive-shells)
;; if you want eshell support, include:
(conda-env-initialize-eshell)

已经是虚拟环境了。非常感谢。还有个问题没解决,在我自己项目下的自编python模块,导入时总是提示:ModuleNotFoundError: No module named ‘tools’ 不知道怎么回事。

这是 Python 的问题吧,检查 sys.paths?