从 Python 断点包设置的断点不起作用

Breakpoints set from Python Breakpoints packages didn't work

我刚刚安装了 sublime text 2、控制包和 python 断点。好吧,我正在尝试使用这些包的断点功能,但它不起作用。我正在使用 Ubuntu 14.04.2 LTS。

这只是一个测试代码

import pdb; pdb.set_trace()  
p = 'Hello World'
print p

当我运行它时,将发送以下输出消息:

> /home/teste.py(5)<module>()
-> p = 'Hellow World'
(Pdb) Traceback (most recent call last):
  File "/home/teste.py", line 5, in <module>
    p = 'Hellow World'
  File "/home/teste.py", line 5, in <module>
    p = 'Hellow World'
  File "/usr/lib/python2.7/bdb.py", line 49, in trace_dispatch
    return self.dispatch_line(frame)
  File "/usr/lib/python2.7/bdb.py", line 68, in dispatch_line
    if self.quitting: raise BdbQuit
bdb.BdbQuit

我很乐意提供任何帮助。

所以有这个问题的答案:

似乎 Sublime Text 本身不支持任何类型的 REPL. The breakpoint above is working but exits with a BdbQuit exception, raised when the pdb REPL receives EOF,这是 'quit' 的常见方式(也适用于 bash、zsh、python 口译员等)。显然 Sublime Text 正在立即发送它,因为它无法打开 REPL。

非集成解决方案

干脆不要 运行 带有 Sublime Text 的代码。通过命令行 (python my_script.py) 或 Python 解释器(通过导入和 运行ning)激活此断点确实会按预期将您带入 pdb 解释器。

集成解决方案

有一些项目(比如 this one 我在上面的评论中提到的)可以为 Sublime 添加 REPL 支持。我个人不使用 Sublime Text,所以我不能推荐,也不知道那个好不好。

如果有任何 Sublime 专家出现,请随时改进此答案或在评论中提出替代方案。