使用 SublimeREPL + pdb (最推荐、最强大)
这是 Sublime Text 中进行 Python 调试最经典、最灵活的方法,它结合了 pdb (Python Debugger) 这个强大的命令行调试器,让你可以在 Sublime 的界面里控制调试过程。

核心思想: 在 Sublime 中打开一个交互式 Python 环境,然后运行你的脚本,pdb 会在遇到断点时暂停,让你可以输入命令来检查变量、执行代码等。
步骤详解:
-
安装 Package Control 如果你还没有安装,这是使用所有 Sublime 插件的前提。
- 打开 Sublime Text,按
Ctrl + ~(或Cmd + ~在 Mac 上) 调出控制台。 - 粘贴以下代码并回车:
import urllib.request, urllib.parse, urllib.error import os url = 'http://packagecontrol.io/install_package_control' response = urllib.request.urlopen(url) data = response.read().decode('utf-8') exec(data) - 重启 Sublime Text。
- 打开 Sublime Text,按
-
安装 SublimeREPL
- 按
Ctrl + Shift + P(或Cmd + Shift + P) 打开命令面板。 - 输入
Package Control: Install Package并回车。 - 在列表中搜索
SublimeREPL并安装。
- 按
-
配置 SublimeREPL
(图片来源网络,侵删)- 打开 SublimeREPL 的配置文件,以便添加快捷键。
- 打开命令面板 (
Ctrl+Shift+P),输入Preferences: Key Bindings - User。 - 在打开的 JSON 文件中,添加以下快捷键配置(你可以自定义按键):
[ { "keys": ["ctrl+shift+r"], "command": "run_existing_window_command", "args": {"id": "repl_python_run", "file": "config/Python/Main.sublime-menu"} } ] - 这里的
ctrl+shift+r是一个自定义的快捷键,用于运行 Python 脚本并进入 REPL 环境,你可以改成你喜欢的组合。
-
开始调试
-
打开你想要调试的 Python 文件,
debug_test.py。 -
在代码中,你想要暂停的地方,使用
pdb.set_trace()来设置断点。这相当于一个手动断点。# debug_test.py def add(a, b): print("即将执行加法...") # 在这里设置断点 import pdb; pdb.set_trace() result = a + b print(f"结果是: {result}") return result if __name__ == "__main__": x = 10 y = 20 sum_result = add(x, y) print(f"最终返回值: {sum_result}") -
重要提示: 为了避免每次运行都手动输入
import pdb; pdb.set_trace(),你可以使用一个技巧,在文件开头添加import pdb,然后在需要的地方只写pdb.set_trace(),或者,你可以使用一个if条件来控制是否开启调试,if True: pdb.set_trace()。
(图片来源网络,侵删)
-
-
运行调试
- 在 Sublime 中打开你的 Python 文件。
- 按下你刚才设置的快捷键(
Ctrl+Shift+R)。 - Sublime 会弹出一个新的窗口,里面是一个交互式 Python 终端,它会自动运行你的脚本。
- 当执行到
pdb.set_trace()时,程序会暂停,你会看到(Pdb)的提示符。
-
使用 pdb 命令进行调试 在
(Pdb)提示符下,你可以输入以下常用命令:n(next): 执行到当前函数的下一行。s(step): 进入当前行调用的函数内部。c(continue): 继续执行,直到遇到下一个断点或程序结束。l(list): 显示当前源代码。p <变量名>(print): 打印变量的值,p a。q(quit): 退出调试。
优点:
- 功能强大:拥有
pdb的所有功能,包括步进、断点、查看变量、堆栈跟踪等。 - 灵活:可以随时进入调试模式,无需复杂的配置。
- 学习价值:熟悉
pdb对在任何环境下(包括服务器、命令行)调试 Python 都非常有帮助。
缺点:
- 界面分离:调试窗口和代码编辑窗口是分开的,不像 IDE 那么集成。
- 手动断点:需要在代码中硬编码
pdb.set_trace(),不像 IDE 那样可以点击行号来设置/取消断点。
使用 SublimeDebugger (图形化、更集成)
这是一个更现代的插件,试图在 Sublime 中提供类似 IDE 的图形化调试体验,它通常与 debugpy (微软的调试器协议实现) 配合使用。
步骤详解:
-
安装 Package Control (同上)。
-
安装 SublimeDebugger 和 debugpy
- 通过
Package Control: Install Package安装SublimeDebugger。 - 你需要通过 pip 安装
debugpy库:pip install debugpy
- 通过
-
配置 SublimeDebugger
- 打开命令面板 (
Ctrl+Shift+P),输入Preferences: Package Settings -> SublimeDebugger -> Settings - User。 - 在用户配置文件中,你需要告诉 Sublime 如何启动你的 Python 脚本,一个基本的配置如下:
{ "target": "${file}", // 调试当前打开的文件 "python": "python3", // 指定 Python 解释器路径 "stop-on-entry": true, // 在程序第一行就暂停 "just-my-code": false // 可以进入标准库 } - 你也可以为不同的项目创建不同的配置。
- 打开命令面板 (
-
开始调试
- 打开你的 Python 文件。
- 在你想要设置断点的代码行号左侧,单击鼠标左键,会出现一个红色的圆点,这就是你的断点。
- 按下
F5(默认快捷键) 或通过命令面板 (Ctrl+Shift+P) 找到SublimeDebugger: Start Debugging。 - 程序会启动,并在遇到断点时暂停,Sublime 的底部会显示一个调试控制台,你可以在这里看到变量值、调用堆栈等信息。
优点:
- 图形化界面:直接在代码行上点击设置断点,非常直观。
- 集成度高:调试信息(变量、堆栈)直接显示在 Sublime 窗口中,体验接近 IDE。
- 无需修改代码:断点是独立于代码的,不需要在源码中插入
pdb.set_trace()。
缺点:
- 配置相对复杂:需要正确配置
debugpy和 Sublime 的设置。 - 插件兼容性:可能与其他插件存在冲突。
- 功能可能不完整:相比成熟的 IDE,某些高级调试功能可能缺失。
使用 Sublime Text 内建终端 (最简单)
这是一种最“原始”但最快速的方法,尤其适合简单的脚本调试。
步骤:
- 打开你的 Python 文件。
- 打开 Sublime 的内建终端:
Tools -> Build System -> Python或Tools -> Build System -> Python3。 - 将光标放在代码中你想要开始调试的地方(
add函数的开头)。 - 按
F5(或Ctrl+B构建),这会直接运行整个脚本,但不会暂停。 - 真正的调试:你需要手动在内建终端中运行
python -m pdb your_script.py,这样pdb就会在脚本开始时暂停,你可以一步步执行。
优点:
- 无需安装任何插件。
- 快速启动。
缺点:
- 体验极差:没有图形化断点,需要手动输入命令,且代码和终端是分离的。
- 功能有限,只适用于非常简单的场景。
总结与对比
| 特性 | 方法一: SublimeREPL + pdb | 方法二: SublimeDebugger | 方法三: 内建终端 |
|---|---|---|---|
| 断点设置 | 手动在代码中添加 pdb.set_trace() |
点击行号,图形化设置 | 无,需用命令行 |
| 调试界面 | 分离的 REPL 窗口 | 集成在 Sublime 窗口内 | 分离的终端窗口 |
| 功能 | 非常强大,拥有 pdb 全部功能 |
较强,类似 IDE 图形化调试 | 基础,依赖 pdb 命令 |
| 易用性 | 中等,需学习 pdb 命令 |
高,符合 IDE 习惯 | 低,最原始 |
| 插件依赖 | 需要 SublimeREPL | 需要 SublimeDebugger 和 debugpy | 无 |
| 推荐场景 | 强烈推荐,尤其是学习 pdb 或需要灵活调试时。 |
喜欢图形化界面,希望获得类似 VSCode/PyCharm 体验的用户。 | 非常快速的检查,或不想安装任何插件时。 |
最终建议:
对于大多数用户,强烈推荐从方法一 (SublimeREPL + pdb) 开始,它虽然需要学习一些命令,但 pdb 是 Python 调试的“内功”,一旦掌握,在任何环境下都能派上用场,并且功能最全面。
如果你非常习惯于 IDE 的图形化调试体验,并且不介意配置一些插件,那么可以尝试 方法二 (SublimeDebugger),它可能会给你带来更现代的调试感受。
