从Python断点包设置的断点没有';行不通

从Python断点包设置的断点没有';行不通,python,sublimetext2,breakpoints,pdb,Python,Sublimetext2,Breakpoints,Pdb,我刚刚安装了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 (mos

我刚刚安装了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
/home/teste.py(5)()
->p=‘Hellow World’
(Pdb)回溯(最近一次呼叫最后一次):
文件“/home/teste.py”,第5行,在
p=‘Hellow World’
文件“/home/teste.py”,第5行,在
p=‘Hellow World’
文件“/usr/lib/python2.7/bdb.py”,第49行,跟踪调度
返回自调度行(帧)
文件“/usr/lib/python2.7/bdb.py”,第68行,调度行
如果自行退出:提出BdbQuit
bdb.bdbguit

我很高兴能得到任何帮助。

这个问题有一个答案:

似乎崇高的文本并不支持任何形式的语言。上面的断点正在工作,但退出时会出现
bdbguit
异常,该异常在pdb REPL接收时引发,这是一种常见的“退出”方式(也适用于bash、zsh、python解释器等)。显然,升华文本会立即发送此消息,因为它无法打开REPL

非集成解决方案 简单地说,不要使用升华文本运行代码。通过命令行(
python my_script.py
)或python解释器(通过导入和运行)激活此断点确实会将您按预期放入pdb解释器

综合解决方案 有几个项目(如我在上面的评论中提到的)可以为Sublime添加REPL支持。我个人不使用崇高的文本,所以我不能推荐一个,我甚至不知道这是不是好的


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

我不使用Supreme,但您是如何运行此功能的
bdbguit
通常是在PDB解释器上发出EOF字符(比如Linux上的
Ctrl-D
)时产生的。好吧,我使用命令Ctrl-B运行代码,这是内置升华文本2的快捷键。谷歌一下告诉我升华文本不能处理任何类型的嵌入式REPL(解释器)。因此,您的断点工作正常,但Sublime会立即将您从REPL中删除。有各种各样的项目(比如)打算解决这个问题,但开箱即用的就是它的工作方式。
bdbguit
只是升华退出它的方式的正常例外。那么,如果我运行代码,例如,从终端pdb运行代码,它会工作吗。如果没有,你还有另一个问题。我想强调的是,它现在似乎正在工作,但某种东西(可能是崇高的)告诉它立即退出。