【发布时间】:2015-07-30 19:11:02
【问题描述】:
我刚刚安装了 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 但你是如何运行它的?
BdbQuit通常是在您在 PDB 解释器中发出 EOF 字符(比如 Linux 上的Ctrl-D)时引起的。 -
好吧,我使用命令 Ctrl-B 运行代码,这是 Build in sublime text 2 的快捷键。
-
一点谷歌搜索告诉我 Sublime Text 不处理任何类型的嵌入式 REPL(解释器)。所以你的断点工作正常,但 Sublime 会立即让你退出 REPL。有各种项目(如this one)旨在解决这个问题,但开箱即用就是它的工作方式。
BdbQuit只是 Sublime 退出方式的正常例外。 -
那么,如果我运行代码,例如,从终端 pdb 会工作吗?
-
应该的。如果没有,你还有另一个问题。我想强调一下,它现在似乎可以工作了,但是有东西(大概是 Sublime)告诉它立即退出。
标签: python sublimetext2 breakpoints pdb