杰瑞科技汇

Python Sublime如何设置断点调试?

使用 SublimeREPL + pdb (最推荐、最强大)

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

Python Sublime如何设置断点调试?-图1
(图片来源网络,侵删)

核心思想: 在 Sublime 中打开一个交互式 Python 环境,然后运行你的脚本,pdb 会在遇到断点时暂停,让你可以输入命令来检查变量、执行代码等。

步骤详解:

  1. 安装 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。
  2. 安装 SublimeREPL

    • Ctrl + Shift + P (或 Cmd + Shift + P) 打开命令面板。
    • 输入 Package Control: Install Package 并回车。
    • 在列表中搜索 SublimeREPL 并安装。
  3. 配置 SublimeREPL

    Python Sublime如何设置断点调试?-图2
    (图片来源网络,侵删)
    • 打开 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 环境,你可以改成你喜欢的组合。
  4. 开始调试

    • 打开你想要调试的 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()

      Python Sublime如何设置断点调试?-图3
      (图片来源网络,侵删)
  5. 运行调试

    • 在 Sublime 中打开你的 Python 文件。
    • 按下你刚才设置的快捷键(Ctrl+Shift+R)。
    • Sublime 会弹出一个新的窗口,里面是一个交互式 Python 终端,它会自动运行你的脚本。
    • 当执行到 pdb.set_trace() 时,程序会暂停,你会看到 (Pdb) 的提示符。
  6. 使用 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 (微软的调试器协议实现) 配合使用。

步骤详解:

  1. 安装 Package Control (同上)。

  2. 安装 SublimeDebugger 和 debugpy

    • 通过 Package Control: Install Package 安装 SublimeDebugger
    • 你需要通过 pip 安装 debugpy 库:
      pip install debugpy
  3. 配置 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 // 可以进入标准库
      }
    • 你也可以为不同的项目创建不同的配置。
  4. 开始调试

    • 打开你的 Python 文件。
    • 在你想要设置断点的代码行号左侧单击鼠标左键,会出现一个红色的圆点,这就是你的断点。
    • 按下 F5 (默认快捷键) 或通过命令面板 (Ctrl+Shift+P) 找到 SublimeDebugger: Start Debugging
    • 程序会启动,并在遇到断点时暂停,Sublime 的底部会显示一个调试控制台,你可以在这里看到变量值、调用堆栈等信息。

优点:

  • 图形化界面:直接在代码行上点击设置断点,非常直观。
  • 集成度高:调试信息(变量、堆栈)直接显示在 Sublime 窗口中,体验接近 IDE。
  • 无需修改代码:断点是独立于代码的,不需要在源码中插入 pdb.set_trace()

缺点:

  • 配置相对复杂:需要正确配置 debugpy 和 Sublime 的设置。
  • 插件兼容性:可能与其他插件存在冲突。
  • 功能可能不完整:相比成熟的 IDE,某些高级调试功能可能缺失。

使用 Sublime Text 内建终端 (最简单)

这是一种最“原始”但最快速的方法,尤其适合简单的脚本调试。

步骤:

  1. 打开你的 Python 文件。
  2. 打开 Sublime 的内建终端:Tools -> Build System -> PythonTools -> Build System -> Python3
  3. 将光标放在代码中你想要开始调试的地方(add 函数的开头)。
  4. F5 (或 Ctrl+B 构建),这会直接运行整个脚本,但不会暂停。
  5. 真正的调试:你需要手动在内建终端中运行 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),它可能会给你带来更现代的调试感受。

分享:
扫描分享到社交APP
上一篇
下一篇