VSCode-Python虚拟环境调试
在VSCode中使用不同环境进行debug Python代码
如何切换debug环境?
Python项目开发中,使用VSCode的调试功能可以比较方便的设置断点和查看变量值,在需要使用不同虚拟环境进行debug时,应如何进行切换?
当前使用venv
创建虚拟环境。
# 创建名为dev_env的虚拟环境
python3 -m venv dev_env
# 切换到dev_env虚拟环境
source dev_env/bin/active
首先需要修改launch.json
文件,用于配置和启动调试器的文件。
VSCode左边活动栏切换到运行和调试
,如图:
点击小齿轮打开launch.json
文件,在configurations python
中定义不同环境的编译器路径。
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: 环境名1",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
"python": "/home/环境1/bin/python"
},
{
"name": "Python: 环境名2",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true,
"python": "/home/环境2/bin/python"
}
]
}
保存后可看到 dev和test 两个选项。
选择运行环境后,点击左侧三角可开始debug模式。
为什么在第三方库的断点不中断?
使用venv
创建虚拟环境后,在第三方库的代码中打上断点,无法在断点上停止,而在自己的代码打断点是可以正常停止的。调试时,发现打在第三方库的断点变成灰色,有如下提示。
原因是默认只调试自己的代码,所以需在launch.json
中将justMyCode
改为false
。
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: dev",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": false, # 原为true,需改为false
"python": "/home/dev/bin/python"
}
]
}
重新运行调试模式,断点可在第三方库中停止。