在Notepad++中调试Python代码

问题描述 投票:0回答:7

我使用 Notepad++ 编写和运行 Python 脚本。除了调试之外,它是一个很棒的文本编辑器。有没有办法像在 Visual Studio 中一样在 Notepad++ 中单步执行代码、使用断点、查看变量值等?

python debugging notepad++
7个回答
10
投票

有这样的插件吗?从来没听说过。我完全同意 qor72 的观点。

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

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

为了完成这样的壮举,我可以看到任务被分成几个大块(我感觉一个新的开源项目即将到来......)

  • 使用 Python 脚本,集成 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
继续执行代码,直到遇到另一个断点。


2
投票

你有没有想过使用科莫多。 它是开源的,并且有适用于 Windows、Linux 和 MAC 的端口(我认为)。

这可能是一种替代方案,如果您需要 notepad++ 用户的一些建议,请查看此网站上的以下帖子:

Komodo Edit 和 Notepad++ ::: 优点和缺点 ::: Python 开发

这里的一些 npp 用户似乎已经切换到 python 编辑运行等...

我个人不太了解 Komodo 上的调试,但由于它是一个 IDE,所以如果您不能轻松做到这一点,我会感到惊讶


2
投票

我真的不明白为什么Shashi的回答没有被投票。因为他给出的链接提供了一种按照OP要求逐步执行Python脚本的方法。

因此,对于所有不了解 pdb 模块的人来说,在导入它后,

pdb.set_trace()
函数允许人们单步执行其后面的代码区域。而且它与 Visual Studio 的调试方法非常相似。当您单步执行代码时,您可以输入各种命令。

其中之一是

p <expression>
,它允许用户打印本地和全局范围内变量的当前状态。


0
投票

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

它是免费的,易于安装(编辑器本身以及它使用的任何 python 解释器),并且它被广泛使用,并且远没有 Visual Studio 的对应版本那么臃肿。它似乎也是许多 Cisco 相关课程材料的首选 IDE。

编写代码,单击代码窗格左侧插入断点,单击调试器图标(突出显示),然后就可以了:


0
投票

VSCode 开发人员表示,他们不了解他们采用的编辑器代码库,无法很好地合并基本功能。很难推荐一个具有基本功能问题和可疑管道的应用程序。尝试搜索-替换几种不同的方式,然后告诉我它工作正常,并且不会引入语法错误。

© www.soinside.com 2019 - 2024. All rights reserved.