在Notepad++中调试Python代码

16

我使用Notepad++来编写和运行Python脚本,这是一个很好的文本编辑器,但在调试方面有些不足。是否有一种类似于Visual Studio中可以逐步执行代码、设置断点、查看变量值等方式在Notepad ++中进行调试的方法?

6个回答

10

是否存在这样的插件?我不清楚。我完全同意qor72的看法。

是否可能创建这样的插件/功能?可能。

经过快速搜索,我找到了一个看起来很有前途的插件Python Script。简而言之,它允许您运行可以访问NPP模块(文件菜单等)以及Scintilla方法的Python脚本,这些方法似乎可以访问页面上的标记等内容。

为了完成这样的任务,我可以将任务拆分为几个大块(我感觉新的开源项目即将上线...)

  • 使用Python Script,集成Shashi提到的Python调试器(PDB)
  • 使用Scintilla方法,在放置NPP标记的地方添加追溯调用。
  • 重定向PDB输出并处理它们以显示文件停止的位置(再次使用Scintilla方法)。
  • 在新创建的断点处,使用PDB确定当前命名空间中的所有变量。获取此信息并将其转储到CMD窗口中,或者如果您想要尝试更高级的操作,可以使用Tk / wxPython创建GUI。

结束语
虽然我认为创建这样的插件是可能的,但这需要很大的投入。沿着这条路线,您可能最好尝试找到已经内置此功能的不同编辑器,并仅创建宏(或IDE称为它们的任何内容),以添加您最喜欢的NPP功能。

请注意,我是NPP的日常用户,并且已经使用了多年,因此我肯定理解为什么你想要将该功能添加到NPP中。我最喜欢NPP的一点是它打开和搜索文件的速度很快... 对我来说,转向臃肿的IDE不值得。
我的当前工作流程是在NPP中进行所有编辑,然后双击运行模块。如果它失败或偏离轨道,我会启动IDLE进行调试。

8

我真的希望有人告诉我我错了(我很想在Notepad ++中拥有该功能),但是,Notepad ++被设计为程序员编辑器,而不是IDE。尽管它具有许多很酷的功能,但那种调试水平不是核心工具的一部分。

npp-plugins中也没有看到任何东西。


7

如果编辑器没有提供调试功能,我认为Python调试器是最佳选择 :)

快速指南:

from pdb import set_trace as bp

code
code
bp()
code
code

(Pdb)提示符下,输入s进行单步调试,输入p foo打印foo,输入c继续执行代码,直到遇到另一个断点。

请参考https://dev59.com/qWw05IYBdhLWcg3w3ViX以了解用法。 - Cees Timmerman

2
我并不明白为什么Shashi's answer没有被点赞。因为他提供的链接给出了一种按照OP要求逐步执行Python脚本的方法。
所以,对于所有不知道pdb模块的人来说,导入它后,pdb.set_trace()函数允许您逐步执行代码区域。它非常类似于Visual Studios的调试方法。当您逐步执行代码时,可以输入各种命令。
其中之一是p <expression>,它允许用户打印局部和全局范围内变量的当前状态。

它缺乏信息,存在死链接的风险。 - Cees Timmerman

2
你考虑过使用Komodo吗?它是开源的,有Windows、Linux和MAC的端口(我想)。这可能是一个替代方案,如果你想从notepad++用户那里获得一些建议,请看看本站上的以下帖子:Komodo Edit and Notepad++ ::: Pros & Cons ::: Python dev。这里有一些npp用户似乎已经转换到了python编辑运行等...个人不太了解在Komodo上进行调试的情况,但作为一个IDE,如果不能轻松地做到这一点,我会感到惊讶的。

0

我知道这已经过去11年了,我有点晚加入游戏,而且我知道这不是Notepad ++,但请考虑使用Visual Studio Code。

它是免费的,安装方便(编辑器本身以及它使用的任何Python解释器),并且被广泛使用,远不像它的Visual Studio版本那样臃肿。 它还似乎是许多与Cisco相关课程材料的首选IDE。

编写您的代码,在代码窗格左侧单击插入断点,单击调试器图标(突出显示),然后开始:

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接