python - 在工作区中的每个目录的 Visual Studio Code 中自动切换 Python 虚拟环境

标签 python visual-studio-code virtualenv

我正在 VSCode 中处理一个具有多个目录的项目,每个目录都需要不同的 Python 虚拟环境。我的虚拟环境位于 ~/.virtualenvs 目录中,我的工作区结构如下:

~/.virtualenvs/
│
├── venv_A/
│
└── venv_B/

my_workspace/
│
├── project_A/
│   └── script_A.py
│
└── project_B/
    └── script_B.py

当我从工作区中的每个目录打开 Python 文件时,我希望 VSCode 自动切换到位于 ~/.virtualenvs 中的相应虚拟环境(project_A 为 venv_A,project_B 为 venv_B)。 目前,我每次都必须通过命令面板手动选择虚拟环境。

我尝试查看 VSCode 文档并搜索有关如何实现此功能的指南或教程,但我没有找到任何可以解决此特定问题的内容。 我希望通过 .vscode/settings.json 文件或工作区设置提供一些配置选项,这些选项允许我指定每个目录应使用哪个虚拟环境,以及 Pylance、pylint 和 yapf 应如何进行相应的调整。

我知道 VSCode 支持工作区和 .env 文件,但我不确定如何将其配置为根据目录自动切换虚拟环境,并让 Pylance、pylint 和 yapf 进行相应的调整。

我也发现了这个问题Select pyenv environment based on folder .python-version file没有关闭。

最佳答案

最简单的方法是分别打开 project_Aproject_B 作为工作空间,然后为工作空间选择一个解释器,vscode 会记住你的选择,并且仍然会使用下次打开时先前选择的解释器。

另一种方法是使用 Multi-root Workspaces

  • 打开一个新窗口并使用将文件夹添加到 Worspace... 将这两个文件夹添加到当前工作区,

    enter image description here enter image description here

  • 然后使用 Ctrl+Shift+P 为两个文件夹创建单独的虚拟环境 --> Python:创建环境...并选择相应文件夹的解释器。

    enter image description here

    也可以选择对应文件夹中的.py文件,然后点击右下角的python版本进行切换

这些文档也可能有用:

关于python - 在工作区中的每个目录的 Visual Studio Code 中自动切换 Python 虚拟环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76432343/

相关文章:

python - 连续 Try/Except block 的替代方案

visual-studio-code - 如何在 vscode 中重新映射 `down` 快速打开菜单?

python - 配置 Visual Studio Code 以在 Windows 上的 bash 中运行 Python

python - 在 virtualenv 中运行 pytest 时导入错误

python - 恢复已删除的 virtualenv

python - 将所有 stdout/stderr 全局重定向到记录器

python - Pandas:如何根据条件语句添加新数据行?

python - float 上的 += 运算符返回一个空的 numpy 数组,而不是抛出 TypeError

visual-studio-code - Visual Studio Code Intellisense 不适用于 NPM 包

python - 如何在 virtualenv 中升级 python 2.7.3 中的 sqlite3?