我想用pdb调试我的插件,但它不起作用。我收到这些错误
Traceback (most recent call last):
File "./sublime_plugin.py", line 362, in run_
File "./useIt.py", line 14, in run
for region in self.view.sel():
File "./useIt.py", line 14, in run
for region in self.view.sel():
File ".\bdb.py", line 46, in trace_dispatch
File ".\bdb.py", line 65, in dispatch_line
bdb.BdbQuit
有人有想法吗?或者其他一些调试sublime插件的方法?
答案 0 :(得分:17)
问题是sys.stdin
没有附加到通常的任何内容。但是,如果从控制台启动SublimeText2,sys.stdin
会起作用:
在Mac上,通过在终端中输入完整路径,在资源包中找到可执行文件来启动应用程序:
/Applications/Sublime\ Text\ 2.app/Contents/MacOS/Sublime\ Text\ 2
在Windows上,从Windows控制台启动应用程序:
"C:\Program Files\Sublime Text 2\sublime_text.exe"
临时,我没有安装Windows Sublime Text 2所以此命令行基于快速Google
现在应用程序有一个控制台;但是sys.stdout
仍然被重定向到内置的SublimeText 2控制台。您希望使用正确的stdout
启动调试器,import pdb; pdb.set_trace()
仍然连接到控制台。而不是import pdb, sys; pdb.Pdb(stdout=sys.__stdout__).set_trace()
,请使用:
stdout
原始控制台sys.__stdout__
保存在pdb.Pdb()
中,并将其传递给pdb
,您将获得功能齐全的{{1}}会话。
答案 1 :(得分:2)
使用我的插件,我对pdb没有太多运气,“print”不是一种有效的调试体验(例如,如果你不确定缺陷在哪里,你可能会添加很多“打印“ - 然后必须删除它们。”
如果运行Windows,还有更好的选择。 Python tools for Visual Studio的最新版本2.2非常适合调试Sublime插件。您可以获得Visual Studio的所有常规调试功能,这是一次精彩的体验。只需在附加对话框中选择“pluginhost.exe”和Python调试引擎即可。在2.2之前,Python工具对Sublime无法正常工作,例如步进被破坏。
披露:我在Visual Studio中工作,但不使用这些工具。我最近与Python工具开发人员一起修复了我使用这些工具编写插件时遇到的错误。
Visual Studio 2015的Community Edition对个人开发者和小型组织免费。只需确保在设置对话框中检查Python工具。当然,您必须运行Windows。
答案 2 :(得分:2)
我找到的最简单的方法是使用Visual Studio。
您应该拥有用于Visual Studio的Python开发工具(您可以通过打开Visual Studio安装程序,单击更多,修改并选择Python开发来下载它们。)
要调试,您需要打开Visual Studio,请从工具栏中选择:调试-附加到进程(Ctrl + Alt + P),然后找到“ plugin_host.exe”并附加。然后打开文件“ plugin.py”,并在某处放置一个断点,就可以了。
答案 3 :(得分:1)
你的问题是sys.stdin
和 (编辑:stdout进入控制台)连接到sublime文本的内部 - 您希望在哪里能够控制调试器?sys.stdout
你想要的是一个远程调试界面,它通过stdio以外的东西进行交互,例如rpdb
。