个人博客地址:VS Code中Python代码调试 | 一张假钞的真实世界
Python扩展通过Python调试器扩展支持多种类型的Python应用调试。简短了解基本调试,见Tutorial - Configure and run the debugger。此外也查看Flask tutorial。两个手册展示了像设置断点和步入代码核心技能。
学习通用的调试特性,像检查变量、设置断点和其他不依赖语言的活动,回顾VS Code debugging。
本文主要讲述Python特定的调试配置,包含特定应用类型和远程调试必要的步骤。
Python调试器扩展
在VS Code中,Python调试器扩展会随着Python插件一起安装。Python调试器基于实现了Python调试适配器协议的debugpy模块,可以调试多种类型的Python应用,包括脚本、Web应用、远程进程等。
验证上面插件安装的方法是,打开扩展面板(Ctrl+Shift+X
),在搜索框中输入@installed python debugger
,在结果列表中可以看到Python和Python调试器插件。
初始配置
VS Code通过配置控制调试行为。这些配置在launch.json
文件中进行定义。launch.json
文件存储在工作空间的.vscode
目录中。
初始化调试配置,首先打开运行和调试面板(Ctrl+Shift+D
)。如果还未做配置,会看到运行和调试按钮和创建launch.json文件的超链接。
按照以下步骤创建launch.json
文件:
1. 点击创建launch.json文件链接。
2. 从调试选项列表中选择Python Debugger。
3. 从弹出的配置类型选择列表中,根据需要选择:如果调试单个Python脚本,选择Python文件。其他类型及选项在列表中有说明,如下:
4. 这时候Python调试器扩展会创建并打开launch.json文件。根据上一步骤选择的类型,文件中已经预先定义了一些配置,如本例中选择的Python文件。可以根据需要修改文件内容添加配置(如添加参数)。
下文会讲解配置细节和不同类型应用的配置。
附加配置
默认的,VS Code只展示Python调试器扩展最通用的配置。可点击其他配置下拉框中选择添加配置命令或点击launch.json文件编辑器中的添加配置按钮,VS Code会展示所有可选配置的列表(注意选择Python调试程序选项):
选择带有参数的Python文件后,效果如下:
调试的时候,状态栏会显示当前的配置和当前的解释器。点击状态栏上的配置,可以选择其他配置。
在工作空间下,默认调试器跟其他扩展一样使用相同的解释器。如果调试器要使用不同的解释器,设置launch.json中的python值,或者使用状态栏的Python解释器指示器。
基础调试
如果只是调试Python脚本,最简单的方式是脚本编辑器运行下拉列表中选择Python调试程序:调试Python文件。
如果调试使用Flask、Django或FastAPI开发的web应用,Python调试器扩展在运行和调试面板中,提供了根据项目结构提供动态调试配置的选项。
如果调试其他类型应用,可以通过点击运行和调试面板中的运行和调试按钮。
当没有设置配置时,VS Code会给出调试选项,选择适合的选项快速进入调试。有两个常用的选项,Python文件配置运行当前打开的Python文件,或者使用进程ID进行附加配置连结调试器到一个运行中的进程。添加配置后,就可以在列表中选择,并使用开始调试(F5)进行调试。
命令行调试
如果安装了debugpy也可以在命令行运行调试器。
安装debugpy
使用以下命令安装debugpy:
$ pip install --upgrade debugpy
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
Collecting debugpy
Downloading https://mirrors.aliyun.com/pypi/packages/fd/b6/ee71d5e73712daf8307a9e85f5e39301abc8b66d13acd04dfff1702e672e/debugpy-1.8.5-cp312-cp312-manyl