在Notepad++中调试Python代码
我用Notepad++来写和运行Python脚本。这个文本编辑器很好用,但在调试方面就不太行了。请问有没有办法在Notepad++里像在Visual Studio那样逐步执行代码、设置断点、查看变量值等等?
6 个回答
我觉得如果编辑器没有提供调试功能的话,Python 调试器是最好的选择 :)
from pdb import set_trace as bp
code
code
bp()
code
code
在 (Pdb)
提示符下,输入 s
可以逐步执行代码,输入 p foo
可以打印出 foo
的值,输入 c
可以继续执行代码,直到遇到下一个断点。
我真心希望有人能告诉我我错了(我也希望Notepad++能有那个功能),但是Notepad++是专门为程序员设计的编辑器,而不是一个集成开发环境(IDE)。虽然它有很多很酷的功能,但那种高级调试的功能并不是它的核心部分。
在npp-plugins里也没有看到相关的内容。
这种插件存在吗?我知道的没有。我完全同意qor72的看法。
有没有可能创建这样的插件或功能?有可能。
我快速查了一下,发现了一个看起来很不错的插件,叫做Python Script。简单来说,它可以让你运行Python脚本,这些脚本可以访问NPP的模块(比如文件菜单等),还可以使用Scintilla方法,这些方法似乎可以让你访问页面上的标记。
要实现这样的功能,我觉得可以把任务分成几个大块(我感觉一个新的开源项目要来了……)
- 使用Python Script,集成Python调试器(PDB),正如Shashi提到的。
- 利用Scintilla方法,在放置NPP标记的地方添加追踪调用。
- 重定向PDB的输出,并处理这些输出,以显示文件停止的位置(同样使用Scintilla方法)。
- 在新创建的断点处,使用PDB确定当前命名空间中的所有变量。然后把这些信息输出到CMD窗口,或者如果想要更花哨,可以用Tk / wxPython创建一个图形界面。
总结一下
虽然我认为创建这样的插件是可能的,但这将是一项相当大的工作。因此,你可能更好地考虑找一个已经内置了这个功能的其他编辑器,然后创建宏(或者IDE称之为的其他名称),把你最喜欢的NPP功能加进去。
请注意,我是NPP的日常用户,已经用了很多年,所以我完全理解你想把这个功能添加到NPP中的原因。我最喜欢NPP的一点就是它打开和搜索文件的速度……对我来说,转向一个臃肿的IDE是得不偿失的。
我现在的工作流程是在NPP中进行所有编辑,然后双击运行模块。如果出现错误或者偏离了方向,我就启动IDLE来调试。