VSCode 2024年3月更新后Python环境激活出现双重括号问题
可能原因
VSCode 2024年3月更新后,Python插件的自动环境激活逻辑调整,与虚拟环境activate脚本的提示符设置、本地shell的PS1配置产生冲突,导致重复添加虚拟环境标识的括号。
解决方案
检查VSCode Python终端激活设置
打开VSCode设置(快捷键Ctrl+,),搜索python.terminal.activateEnvironment,确认该选项处于开启状态。同时查看python.terminal.activateEnvInCurrentTerminal,若之前自定义过激活命令,尝试暂时清空,使用默认逻辑。可以先关闭自动激活,手动执行source .venv/bin/activate验证提示符正常后,再排查自动激活的问题。修改虚拟环境的activate脚本
远程主机上进入虚拟环境目录:cd .venv/bin/,编辑activate脚本,找到设置PS1的代码段:_OLD_VIRTUAL_PS1="$PS1" if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] ; then PS1="($(basename "$VIRTUAL_ENV")) $PS1" fi修改为带重复判断的逻辑,避免重复添加括号:
_OLD_VIRTUAL_PS1="$PS1" if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ] && [[ "$PS1" != *"($(basename "$VIRTUAL_ENV"))"* ]]; then PS1="($(basename "$VIRTUAL_ENV")) $PS1" fi保存后重新打开终端测试。
排查shell的PS1配置
根据使用的shell(bash/zsh等),检查~/.bashrc或~/.zshrc文件中的PS1设置,若配置中已包含虚拟环境的占位符或自定义的环境标识,可能与VSCode自动激活逻辑重复。暂时注释掉相关PS1配置,重启终端验证是否解决问题。回退Python插件版本
由于问题出现在2024年3月VSCode更新后,大概率是Python插件的版本问题。打开VSCode扩展面板,找到Python插件,点击右侧齿轮图标,选择「Install Another Version...」,选择2024年3月之前的版本(如v2024.2.1)安装,重启VSCode后测试提示符是否恢复正常。
内容的提问来源于stack exchange,提问作者Jason Holden

