我可以在 VS Code 中拥有多个带有虚拟 python 环境的子文件夹吗?

Nor*_*sic 11 python virtualenv python-venv visual-studio-code

我有一个像这样的 monorepo 结构:

\n
myRepo/\n\xe2\x94\x9c\xe2\x94\x80 project_1/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 .venv/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 main.py\n\xe2\x94\x9c\xe2\x94\x80 project_2/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 .venv/\n\xe2\x94\x82  \xe2\x94\x9c\xe2\x94\x80 main.py\n\xe2\x94\x9c\xe2\x94\x80 .gitignore\n\xe2\x94\x9c\xe2\x94\x80 README.md\n
Run Code Online (Sandbox Code Playgroud)\n
    \n
  • VS Code 可以处理子文件夹中的多个 python venv吗?
  • \n
\n

经过一番谷歌搜索后,我找到了一个解决方案,但它不是很优雅。我创建了一个工作区并添加了有效的文件夹/project_1/project_2,我可以轻松切换并选择 Python Interpreter。我还需要/root不时修改文件,所以我也添加了这个文件夹。所有这些使得资源管理器文件夹结构变得更大并且更混乱,其中包含其自身的重复项:

\n
workspace/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 myRepo/\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 project_1/\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .venv/\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.py\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 project_2/\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .venv/\n\xe2\x94\x82   \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.py\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .gitignore\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 README.md\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 myRepo/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 project_1/\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .venv/\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 project_2/\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 .venv/\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.py\n
Run Code Online (Sandbox Code Playgroud)\n

car*_*ich 2

VS Code 有一个位置列表,用于查找虚拟环境。仅自动选取位于工作区正下方的环境。不过,您也可以在运行Python: Select Interpreter命令时输入自定义路径。只需选择“输入解释器路径...”并导航到 venv 的/bin/python可执行文件:

选择口译员

输入解释器路径

寻找

python 二进制文件

一旦您使用了自定义解释器路径,VS code 就会知道它,并且可以使用Python: Select Interpreter命令直接选择。

  • 如果这对你有用,那么我这边肯定有问题。我已经尝试过几次,它只是切换回我上次使用的解释器。您确定这在子目录中有效吗? (3认同)