以下是Visual Studio Code 中 Python Debug(调试)最全教学指南,适合从入门到进阶使用,内容覆盖了设置断点、变量监控、调试配置、断点条件、远程调试、单元测试调试等多个方面。


🧭 目录

  1. 安装 VSCode Python 扩展
  2. 基础调试功能
    • 运行与调试窗口
    • 设置断点
    • 查看变量与堆栈
    • 使用 Watch(观察)窗口
  3. 配置 launch.json(高级调试配置)
  4. 常见调试场景设置
    • 命令行参数传递
    • 以模块方式启动
    • 调试 Flask/Django
  5. 条件断点与日志断点
  6. 多线程调试
  7. 单元测试调试
  8. 远程调试(Remote Debug)
  9. Docker 容器中的调试
  10. Jupyter Notebook 中的调试
  11. 调试技巧与快捷键汇总

1. 安装 VSCode Python 扩展

  • 打开 VSCode
  • 前往扩展(Extensions)窗口:Cmd+Shift+X(macOS)或 Ctrl+Shift+X(Windows/Linux)
  • 搜索并安装 Python 扩展(由 Microsoft 提供)
  • 推荐安装:
    • Python
    • Pylance(用于类型提示与智能补全)
    • Jupyter(如果你使用 notebook)

2. 基础调试功能

启动调试器

  • 点击左侧菜单中的「运行和调试」(Run and Debug)
  • 或使用快捷键:F5

设置断点

  • 单击代码行号左侧的空白处,添加断点
  • 断点变为红点,表示已激活

查看变量和调用堆栈

  • 调试时,左侧窗口会出现:
    • 变量(Variables)
    • 监视(Watch)
    • 调用堆栈(Call Stack)
    • 断点列表(Breakpoints)

控制调试流程

  • 工具栏按钮含义:
    • ▶️ 继续(Continue)F5
    • ⏩ 单步跳过(Step Over)F10
    • ⬇️ 单步进入(Step Into)F11
    • ⬆️ 单步跳出(Step Out)Shift+F11
    • ⏹️ 停止调试

3. 配置 launch.json

点击「运行和调试」 → 「创建 launch.json 文件」,选择环境为 Python

示例:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python:当前文件",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal"
    }
  ]
}

4. 常见调试场景设置

调试传参程序

"args": ["arg1", "arg2"],

调试模块(如以 -m 启动模块)

"module": "my_module",
"justMyCode": false,

Flask 示例配置:

{
  "name": "Flask 调试",
  "type": "python",
  "request": "launch",
  "module": "flask",
  "env": {
    "FLASK_APP": "app.py",
    "FLASK_ENV": "development"
  },
  "args": ["run", "--no-debugger", "--no-reload"],
  "jinja": true
}

Django 示例配置:

{
  "name": "Django 调试",
  "type": "python",
  "request": "launch",
  "program": "${workspaceFolder}/manage.py",
  "args": ["runserver"],
  "django": true
}

5. 条件断点与日志断点

条件断点(右键断点 → 编辑断点)

例如:

x == 5

日志断点(不暂停,仅打印信息)

设置表达式作为输出信息:

Value of x: {x}

6. 多线程调试

  • 默认支持多线程
  • 可在 launch.json 添加:
"subProcess": true,

7. 单元测试调试

设置单元测试框架(如 unittest 或 pytest)

  • 命令面板:Ctrl+Shift+P → Python: Configure Tests
  • 启动测试 → 点击测试用例旁边的调试图标 🐞

8. 远程调试(Remote Debug)

使用 debugpy

pip install debugpy

在代码中插入:

import debugpy
debugpy.listen(("0.0.0.0", 5678))
debugpy.wait_for_client()
debugpy.breakpoint()

在 VSCode 中使用“附加到远程进程”:

{
  "name": "附加调试",
  "type": "python",
  "request": "attach",
  "connect": {
    "host": "127.0.0.1",
    "port": 5678
  }
}

9. Docker 容器中的调试

  • 容器中运行 debugpy
  • 主机端 VSCode 使用 remote attach 模式
  • 推荐使用 VSCode 的 Remote Containers 插件

10. Jupyter Notebook 中的调试

  • 安装 Jupyter 扩展
  • 使用调试图标启用 Cell 级调试
  • 支持断点、单步运行、变量查看

11. 调试技巧与快捷键汇总

功能快捷键
启动调试F5
单步跳过F10
单步进入F11
单步跳出Shift+F11
添加观察右键变量 → 添加到观察
暂停程序Ctrl+Shift+F5

📚 参考资料


如需为你量身定制一份 launch.json 或调试配置文件,可以发我你的项目结构和调试需求,我可以进一步帮你定制。