VSCode 终端中的 conda activate 未正确更新 PATH

Cal*_*leb 10 python path conda visual-studio-code

我正在使用 VSCodes 终端窗格。我激活 conda 环境。由于某种原因,该python命令仍然设置为/usr/bin/python,而不是 conda 环境的正确路径。

% conda activate myenv
% which python
/usr/bin/python
Run Code Online (Sandbox Code Playgroud)

正确的 anaconda 环境目录似乎确实在$PATH变量中,但/usr/bin优先级似乎高于它。

当我通过操作系统打开标准终端时,行为正如我所期望的那样。

% conda activate myenv
% which python
/Users/cpl/anaconda3/envs/myenv/bin/python
Run Code Online (Sandbox Code Playgroud)

请注意:我已经将 VSCode 首选项键设置python.pythonPath/Users/cpl/anaconda3/envs/myenv/bin/python,并且我认为它可以正常工作。当我通过右键单击并选择运行文件时Run Python File In Terminal,将执行正确的 python(来自 conda 环境)。我的问题是直接使用VSCode终端执行python。

我的 shell 是 zsh,我使用的是 OSX。有什么建议吗?

Cal*_*leb 3

VSCode 文档中对此行为进行了解释: Why are there重复的路径在终端的 $PATH 环境变量中和/或为什么它们被颠倒?#

听起来 VSCode 会在 MacOS 中运行 .zshrc 两次,与 conda 生成的PATH变量定义冲突。

上面的链接列出了两种解决方案。对我有用的方法是设置 VSCode 设置"terminal.integrated.inheritEnv": false。该文档警告说,如果执行此操作,所有环境变量都将被删除。但是,我发现文件中仍然定义了自定义变量.zshrc

值得注意的是,最新版本的 VSCode 在检测到您正在使用 conda 环境时会提示您,并建议进行此更改。