在使用 Visual Studio Code (VS Code) 进行 Python 开发时,有时会遇到终端中显示两个环境名的问题。这可能会导致混淆,并影响开发体验。本文将介绍如何通过修改 VS Code 的设置文件来解决这个问题。

(base) (myenv) user@hostname:~/project$

问题描述

在 VS Code 中,当你打开终端并激活 Python 环境时,可能会看到类似以下的输出:

这里显示了两个环境名 (base)(myenv) ,这可能会让人困惑,不知道当前到底使用的是哪个环境。

解决方案

我们可以通过修改 VS Code 的设置文件 settings.json 来解决这个问题。具体步骤如下:

打开 VS Code。

安装并启用 Python 插件(如果尚未安装)。

打开 VS Code 的设置文件 settings.json

你可以通过以下步骤打开 settings.json 文件:

点击左下角的齿轮图标,然后选择“设置”。 在设置界面右上角点击打开 JSON 设置文件的图标。 在 settings.json 文件中添加以下配置:

"python.terminal.activateEnvironment": false,
"terminal.integrated.shellIntegration.enabled": false,

这两行配置的作用如下:

“python.terminal.activateEnvironment”: false 禁用 Python 插件自动激活环境的功能。 “terminal.integrated.shellIntegration.enabled”: false 禁用终端集成的 shell 环境激活功能。 保存 settings.json 文件。

示例

以下是一个完整的 settings.json 文件示例:

{
    // 其他配置项...
    "python.terminal.activateEnvironment": false,
    "terminal.integrated.shellIntegration.enabled": false
}

效果

完成上述配置后,当你在 VS Code 中打开终端并激活 Python 环境时,应该只会显示一个环境名。例如:

(myenv) user@hostname:~/project$

这样可以避免显示两个环境名的问题,提升开发体验。

为了避免自动激活环境

你可以在~/.bashrc文件中在初始化conda环境后, 添加:

conda config --set auto_activate_base False

# 其他配置
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/chase/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
    eval "$__conda_setup"
else
    if [ -f "/home/chase/anaconda3/etc/profile.d/conda.sh" ]; then
        . "/home/chase/anaconda3/etc/profile.d/conda.sh"
    else
        export PATH="/home/chase/anaconda3/bin:$PATH"
    fi
fi
unset __conda_setup
# <<< conda initialize <<<
conda activate py39 # 这里你可以自动选用你默认使用的环境
conda config --set auto_activate_base false