利用 Sublime Text 作为轻量级的代码编辑器和启动器,将真正的“调试”工作交给一个功能强大的 Python 调试器,pdb 或 ipdb。

下面我将为你介绍两种主流的方法:
-
使用 SublimeREPL 插件(推荐,最常用)
- 优点:集成度高,可以直接在 Sublime 的一个新窗口(REPL)中运行和调试代码,交互性好。
- 缺点:需要安装插件,配置稍显复杂。
-
使用
pdb/ipdb手动插入断点- 优点:无需额外插件,是 Python 自带的调试方式,在任何环境都适用。
- 缺点:需要在代码中手动添加断点,每次调试前需要修改代码,调试结束后需要移除断点。
使用 SublimeREPL 插件进行调试
这是 Sublime 社区中最流行和成熟的调试方案。

第 1 步:安装必要的软件
- Python: 确保你的电脑上已经安装了 Python,
pip可用。 - ipdb:
pdb是 Python 自带的调试器,但ipdb是它的增强版,提供了更好的用户体验(如语法高亮、自动补全等),强烈推荐使用ipdb。pip install ipdb
第 2 步:安装 SublimeREPL 插件
- 打开 Sublime Text。
- 按
Ctrl + Shift + P(Windows/Linux) 或Cmd + Shift + P(Mac) 打开命令面板。 - 输入
Package Control: Install Package并回车。 - 在弹出的列表中,搜索
SublimeREPL并点击安装。
第 3 步:配置 SublimeREPL 以使用 ipdb
-
同样通过
Ctrl + Shift + P打开命令面板。 -
输入
Preferences: Settings - User并回车,这会打开你的用户配置文件。 -
在配置文件中添加以下 JSON 代码,这会告诉 SublimeREPL 使用
ipdb而不是默认的pdb。{ "default_extend_env": { "PYTHONPATH": "${project}:${project}/lib/python3/site-packages" // 可选,用于设置项目路径 }, "repl": { "python": { // 这里是关键配置,将调试器设置为 ipdb "interpreter": "python", "selector": "source.python", "cmd": ["python", "-i", "-m", "ipdb"], "target": "console", "show_on_startup": "false", "cwd": "$file_path" } } }- 解释:
"cmd": ["python", "-i", "-m", "ipdb"]: 这是最重要的部分,它告诉 SublimeREPL 不要直接运行python,而是用python -m ipdb的方式启动,这会加载ipdb作为交互式调试器。- 其他配置项可以根据需要调整,
cwd设置了当前工作目录为文件所在目录,很常用。
- 解释:
第 4 步:开始调试
-
打开你的 Python 文件。
(图片来源网络,侵删) -
设置断点: 在你想要程序暂停的代码行,点击行号左侧,会出现一个红色的圆点,这就是断点。
-
启动调试器:
- 按
Ctrl + Shift + P打开命令面板。 - 输入
SublimeREPL: Python - RUN current file,注意,我们选择的是RUN,而不是IPDB,SublimeREPL 会根据我们上面的配置,自动使用ipdb来运行。 - 或者,你可以使用快捷键,默认没有设置,可以在
Preferences > Key Bindings - User中自定义,{ "keys": ["f5"], "command": "run_existing_window_command", "args": {"id": "repl_python_run", "file": "config/Python/Main.sublime-menu"} }这样按
F5就可以运行了。
- 按
-
调试过程:
-
程序会启动,并在你设置的断点处暂停。
-
Sublime Text 窗口下方会弹出一个新的控制台窗口,这就是
ipdb的交互环境。 -
你会看到
(Pdb)提示符。 -
你可以输入各种
ipdb命令来调试:命令 缩写 功能 nextn执行到当前函数的下一行 steps进入函数内部 continuec继续执行,直到遇到下一个断点 listl显示当前代码段 pp <variable>以更友好的方式打印变量值 quitq退出调试器 -
查看变量: 你可以直接输入变量名,然后回车来查看它的值。
-
继续执行: 输入
c并回车,程序会继续运行,直到结束或遇到下一个断点。
-
使用 ipdb 手动插入断点
这种方法更直接,适合不想安装插件的开发者。
第 1 步:安装 ipdb
pip install ipdb
第 2 步:在代码中插入断点
在你的 Python 文件中,使用 import ipdb; ipdb.set_trace() 来设置断点。
# my_script.py
import ipdb
def add(a, b):
# 在这里设置断点
ipdb.set_trace()
result = a + b
print(f"The result is {result}")
return result
if __name__ == "__main__":
x = 10
y = 20
sum_result = add(x, y)
print(f"Final sum: {sum_result}")
第 3 步:运行脚本
- 保存文件。
- 在终端中,切换到文件所在的目录,然后运行:
python my_script.py
或者,你也可以在 Sublime Text 的内置控制台中运行(
Ctrl + @打开控制台,然后输入python my_script.py)。
第 4 步:调试过程
程序会在 ipdb.set_trace() 那一行暂停,并打开一个 ipdb 交互式会话。
> /path/to/your/project/my_script.py(6)<module>() -> result = a + b (Pdb)
你就可以和方法一中一样,使用 n, s, c, pp x 等命令来调试你的代码了。
优点与缺点
- 优点:
- 无需任何插件,轻量级。
- 非常灵活,可以在任何地方插入断点。
- 缺点:
- 每次调试都需要修改源代码,添加
import ipdb; ipdb.set_trace()。 - 调试结束后,需要手动删除这些断点行,否则每次运行都会卡住。
- 不如 SublimeREPL 集成度高,需要在 Sublime 和终端之间切换。
- 每次调试都需要修改源代码,添加
总结与对比
| 特性 | 方法一 (SublimeREPL) | 方法二 (手动 ipdb) |
|---|---|---|
| 易用性 | 高,无需修改代码,点击断点即可 | 低,需手动修改代码,调试后需清理 |
| 集成度 | 高,完全在 Sublime 界面内完成 | 低,依赖外部终端/控制台 |
| 灵活性 | 较高,通过配置文件定制 | 极高,可在任何逻辑处插入断点 |
| 依赖 | 需要安装 SublimeREPL 插件 | 仅需 ipdb,无额外依赖 |
| 推荐场景 | 日常开发,频繁调试 | 快速检查,临时调试,不想装插件时 |
对于绝大多数 Sublime Python 强烈推荐使用方法一(SublimeREPL + ipdb),它提供了一种无缝、高效的调试体验,将 Sublime Text 的轻量级与专业 IDE 的调试能力结合了起来。
