我在使用 MacOS Mojave,我不明白为什么 Visual Studio Code 的集成终端与普通终端有不同的路径变量。
我已经检查过 VSCode 是否打开/bin/bash
(echo $SHELL
产生/bin/bash
)。
echo $PATH
然而,在集成终端中执行时,它会产生/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/anaconda3/bin:/anaconda3/condabin
,而在普通终端上则会产生/anaconda3/bin:/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
它们都~/.bash_profile
包含以下内容:
# added by Anaconda3 2018.12 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$(CONDA_REPORT_ERRORS=false '/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then
\eval "$__conda_setup"
else
if [ -f "/anaconda3/etc/profile.d/conda.sh" ]; then
. "/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
\export PATH="/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
即使~/.bash_profile
在集成终端中获取源代码后,/anaconda3/bin 仍然位于末尾,而~/.bash_profile
它却被添加到前面,这令人困惑。
我认为在集成终端中执行 bash_profile 后必须添加默认路径?不确定它是如何工作的
我犹豫着是否要将此作为问题发布在 vscode repo 中,但我只是想确保这不是我的理解错误。
答案1
在 Visual Studio Code 中,从命令面板(⇧⌘P)打开“设置(JSON)”,并在文件末尾添加以下内容
"terminal.integrated.env.osx": {
"PATH": ""
}
重新启动 VSCode,一切就绪。
答案2
您可以在 Visual Studio Code 设置中取消Terminal › Integrated: Inherit Env
选中可通过 搜索的选项terminal.integrated.inheritEnv
,如下图所示:
參考文獻:https://github.com/microsoft/vscode/issues/70248#issuecomment-502186149(现在该选项terminal.integrated.inheritEnv
已包含在稳定版本中。)
答案3
关闭Enable Persistent Sessions
设置就可以解决这个问题。
看起来,当此设置打开时,VSCode 会缓存的值PATH
并且永远不会更新它。
解决方案的来源是这个 StackOverflow 答案。