Visual Studio 代码覆盖集成终端中的 python 解释器

Visual Studio Code overrides python interpreter in integrated terminal

当启动一个 Visual Studio 代码的集成终端时,Python 项目的代码依赖于它自己的虚拟环境,python 二进制文件的路径保持不变。也就是说,集成终端的输出如下(启动后):

user@host:~/repos/project$ source /home/user/repos/project/.env/bin/activate
(.env) user@host:~/repos/project$ which python
/usr/bin/python
(.env) user@host:~/repos/project$ which python3
/usr/bin/python3
(.env) user@host:~/repositories/karbon/kuring$ echo $PATH

/home/user/repos/project/.env/bin:/home/user/local/bin:/home/user/.cargo/bin:/home/user/local/bin:/home/user/. cargo/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

虚拟环境在项目设置中配置如下:

.vscode/settings.json:

{"python.pythonPath": ".env/bin/python",}

已在命令面板中选择解释器指向相同的文件路径。

It is strange that even running "source .env/bin/activate" in a separate terminal seems to be loading the virtual environment, but the Python path remains unaltered.

问题:VS Code 不应该从虚拟环境而不是从操作系统加载解释器吗?

请注意,与在 VS 代码外的常规 BASH 终端相比,我在使用虚拟环境时没有问题。

您应该在 settings.json:

中添加对您的工作文件夹的引用
.vscode/settings.json:
{"python.pythonPath": "${workspaceFolder}/.env/bin/python",}