在Sublime Text 3中运行Python调试器(pdb)

eco*_*coe 25 python breakpoints sublimerepl sublimetext3 sublime-text-plugin

如何在Sublime Text 3中设置python调试器(pdb)断点?

无论SublimeREPLPython的断点失败,默认的Python构建系统:

print "hello"
# code runs fine without this breakpoint
import pdb; pdb.set_trace()
print "bye"

>>>File "C:\Python27\lib\bdb.py", line 49, in trace_dispatch
>>>return self.dispatch_line(frame)
    >>>File "C:\Python27\lib\bdb.py", line 68, in dispatch_line
    >>>if self.quitting: raise BdbQuit
Run Code Online (Sandbox Code Playgroud)

上述问题出现在文档中,但没有明显的修复.或者答案一直盯着我看?

小智 5

python breakpoint插件并检查此链接python断点调试器

使用ctrl + shift + b切换一行中的断点

但它不是使用文本编辑器调试软件的首选解决方案.有最好的IDE,使您的开发更容易

  • 视觉工作室社区版

  • Pycharm

  • 日食

  • 科莫多

  • IDE的存在是众所周知的,但是有些人仍然喜欢使用VIM,有些人也更喜欢轻量级且仍然有点强大的崇高文本.有意见并不是他的问题特别相关. (6认同)
  • 你已经引用了我基于我的问题的相同的崇高工具. (3认同)

chi*_*sky 5

如果您不想处理其他包,您可以创建一个代码片段来为您设置断点。

<snippet>
    <content><![CDATA[import pdb;pdb.set_trace()]]></content>
    <tabTrigger>pdb</tabTrigger>
    <scope>source.python</scope>
    <description>Insert a breakpoint</description>
</snippet>
Run Code Online (Sandbox Code Playgroud)

pdb每当您输入代码时,上面的代码片段就会触发。触发代码片段时的自动完成窗口

Mac 上的说明

  • 导航到工具 -> 开发人员 -> 新代码段
  • 将模板替换为上面的代码片段
  • 将代码片段保存到 ~/Library/Application Support/Sublime Text 3/Packages/User
  • 确保名称以 sublime-snippet 结尾(例如,breakpoint.sublime-snippet)

保存后应该立即开始工作。

---------- 2019 年 11 月 29 日更新 ----------

正如 @FamousSnake 在下面的评论中提到的,如果您使用的是 Python 3.7 或更高版本,您可以修改代码片段以使用内置的Breakpoint()函数。如果您使用 linter 或 black 等实用程序来格式化代码,这会特别方便。它应该让他们停止抱怨或将上面的代码分成多行。您可以使用下面修改后的代码片段:

<snippet>
    <content><![CDATA[breakpoint()]]></content>
    <tabTrigger>pdb</tabTrigger>
    <scope>source.python</scope>
    <description>Insert a breakpoint</description>
</snippet>
Run Code Online (Sandbox Code Playgroud)


Joh*_*yna -3

您可以尝试使用特定于 Python 的 IDE,这使得调试和设置 Python 项目变得非常容易。我建议您尝试 Pycharm 的免费社区版本。

https://www.jetbrains.com/pycharm/download/

  • 这不是一个答案;这是一条评论。 (4认同)