如何在开发过程中调试sublime插件

2024-04-20 15:38:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用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

有人知道吗?或者用其他方法调试一个高级插件?


Tags: runinpyself插件viewforline
3条回答

问题是sys.stdin没有附加到通常的任何上。但是,sys.stdin如果您从控制台启动sublimitext2,则可以工作:

  • 在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仍然被重定向到内置的submitext2控制台。您想用正确的stdout启动调试器,该调试器仍然连接到您的控制台。不要使用import pdb; pdb.set_trace(),而是使用:

import pdb, sys; pdb.Pdb(stdout=sys.__stdout__).set_trace()

原始控制台stdout保存在sys.__stdout__中,通过将其传递给pdb.Pdb(),您将获得一个完全功能的pdb会话。

在我的插件上工作时,我对pdb没有太多的运气,“print”不是一个有效的调试体验(例如,如果你不确定缺陷在哪里,你可能会添加很多“print”-然后不得不删除它们)。

如果你运行Windows,还有一个更好的选择。最新版本2.2的Python tools for Visual Studio非常适合调试Sublime插件。您获得了Visual Studio的所有常规调试功能,这是一次完美的体验。只需在附加对话框中选择“pluginhost.exe”和Python调试引擎。在2.2之前,Python工具无法针对Sublime正常工作,例如stepping被破坏。

披露:我在Visual Studio中工作,但不使用这些工具。我最近与Python工具开发人员合作,修复了使用这些工具编写插件时遇到的错误。

Visual Studio 2015的Community Edition对个别开发人员和小型组织是免费的。只需确保您在安装对话框中检查了Python工具。当然,你一定在运行Windows。

我发现最简单的方法就是使用Visual Studio。

您应该拥有针对Visual Studio的Python开发工具(您可以通过打开visualstudio安装程序,单击more,修改并选择Python development来下载它们)。

若要调试,需要打开visual studio,请从工具栏中选择“调试-附加到进程”(Ctrl+Alt+p),然后找到“plugin_host.exe”并附加。然后打开你的文件'plugin.py',在某个地方设置一个断点,你就可以走了。

相关问题 更多 >