[英]How to specify the python version for VSCode virtual environment, when I have multiple python versions intalled?
我安装了 64 位和 32 位 Python。 我试图使用 VSCode 中的 32 位 Python.exe 文件创建虚拟环境。 我在 Python: Select Interpreter 中为我的工作区选择了该版本(即 C:\Program Files\python.exe.exe)。
然后我更改了工作区中的 launch.json 文件以包含“python”解释器:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"python": "c:/Program Files (x86)/Python37-32/python.exe"
}
]
}
但是,当我创建虚拟环境时:
py -3 -m venv 32_bit_env
它使用的 python 解释器是来自 C:\Program Files\Python37\python.exe 的 64 位版本,如 pyvenv.cfg 所示:
home = C:\Program Files\Python37
是否有其他位置可以更改工作区中 python.exe 文件的目录? 谢谢!
您正在混合两个概念:VS Code 和py
启动器使用的 Python 解释器。 除此之外,还有python
命令。 我将尝试解释它们是如何配置的以及它们是如何影响的以及什么。
python
命令仅PATH
环境变量。 使用带有python.exe
的 Process PATH
环境变量中的第一个文件夹。 进程PATH
是在启动进程时通过组合用户和系统 PATH 变量形成的。 子进程,例如 VS Code 的集成终端,在初始化时继承父进程的PATH
。
pyvenv.cfg
的home
键指向的版本。 激活虚拟环境会修改 shell 的PATH
。当您在终端中运行python
命令时。
py
命令 py
命令是 Windows 的Python 启动器,在 Python 3.3 中添加。
首先,这些是按这个顺序检查的
where py
定位)如果未另行指定,它将始终使用最新安装的版本。
python.pythonPath
在.vscode\settings.json
中, python.pythonPath
键。
Python: Run Python File in Terminal
Run: Run Without Debugging
for.py 文件时Run: Start Debugging
for.py 文件 具体来说,如果您在集成终端中运行py
或python
,则python.pythonPath
设置不会影响发生的情况。 只有为python.pythonPath
指定了虚拟环境,并启动了新的集成终端,并激活了虚拟环境,才会影响它。 也就是说,没有额外的“魔法”添加 VS Code 或 VS Code 集成终端。
集成终端(默认情况下)只是一个普通的 Powershell。 它对 VS 代码中的python.pythonPath
设置一无所知。
您可以使用 python 3.7-32bit 创建一个虚拟环境
py -3.7-32 -m venv 32_bit_env
或者,32 位 v.3.7 的完整文件路径。 python.exe
,假设 Powershell (因此&
):
& "C:\some\path\Python 3.7 32-bit\python.exe" -m venv 32_bit_env
如果需要,您可以使用py -0p
检查完整的文件路径。 然后,您可以通过编辑 settings.json 使这个虚拟环境在新的 VS Code 集成终端中自动激活:
{
"python.pythonPath": "C:/tmp/someproj/my_venv/Scripts/python.exe"
}
请注意,条目中的每个\
都必须替换为\\
或/
。 python.pythonPath
必须是绝对的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.