Visual Studio Code 集成终端路径与普通终端不同

Visual Studio Code 集成终端路径与普通终端不同

我在使用 MacOS Mojave,我不明白为什么 Visual Studio Code 的集成终端与普通终端有不同的路径变量。

我已经检查过 VSCode 是否打开/bin/bashecho $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,一切就绪。

取自https://github.com/Microsoft/vscode-python/issues/4434

答案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 答案

相关内容