有没有人理念?还是其他一些调试升级插件的方法?
解决方案问题是 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 会话。
I want to debug my plugin with pdb but it doesn't work. I get these errors
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.BdbQuitHas anyone an idea? Or some other way to debug a sublime plugin?
解决方案The problem is that sys.stdin is not attached to anything normally. But, sys.stdin does work if you start SublimeText2 from a console:
On Mac, start the application by locating the executable in the resource bundle by entering the full path in the Terminal:
/Applications/Sublime\ Text\ 2.app/Contents/MacOS/Sublime\ Text\ 2On Windows, start the application from the Windows Console:
"C:\Program Files\Sublime Text 2\sublime_text.exe"provisional, I have no Windows Sublime Text 2 install so this command line is based on a quick Google
Now the application has a console; but sys.stdout is still redirected to the built-in SublimeText 2 console. You want to start your debugger with the correct stdout, the one still connected to your console. Instead of import pdb; pdb.set_trace(), use:
import pdb, sys; pdb.Pdb(stdout=sys.__stdout__).set_trace()The original console stdout is saved in sys.__stdout__ and by passing that to pdb.Pdb() you get a fully functional pdb session.
更多推荐
如何在开发过程中调试升华插件
发布评论