debugging 在记事本++中调试Python代码

uidvcgyl  于 2023-02-09  发布在  Python
关注(0)|答案(6)|浏览(196)

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

icnyk63a

icnyk63a1#

这样的插件存在吗?据我所知没有。我完全同意qor 72的观点。
有可能创建这样的插件/功能吗?有可能。
在做了一些快速的挖掘之后,我确实找到了一个看起来很有前途的插件,Python Script。简而言之,它允许你运行python脚本,可以访问NPP模块(文件菜单等...)以及Scintilla方法,出现给予访问页面上的标记之类的东西。
为了完成这样一个壮举,我可以看到任务被分成几个大块(我感觉一个新的开源项目即将到来...)

  • 使用Python脚本,如Shashi所述集成python debugger(PDB)
  • 使用Scintilla方法,在放置NPP标记的位置添加回溯调用
  • 重定向PDB输出并对其进行处理,以显示文件停止的位置(再次使用Scintilla方法)。
  • 在新创建的断点处,使用PDB确定当前名称空间中的所有变量。获取此信息并将其转储到CMD窗口,或者如果您想使用Tk/wxPython创建一些有趣的GUI
    结束语

虽然我认为创建这样一个插件是可能的,但这将是一项艰巨的任务。沿着这一思路,您最好尝试找到一个已经内置了此插件的不同编辑器,然后创建宏(或IDE对它们的任何称呼)来添加您最喜欢的NPP内容。
请注意,我是NPP的日常用户,并且已经使用了很多年,所以我完全理解为什么你想在NPP中添加这个功能。我最喜欢NPP的一点是它打开和搜索文件的速度......移动到一个臃肿的IDE,IMO,对我来说不值得。
我目前的工作流程是在NPP中进行所有的编辑,然后双击运行模块。如果它失败了或者在杂草中消失了,我会启动IDLE来调试它。

b4qexyjb

b4qexyjb2#

我真的希望有人告诉我我错了(我希望在记事本中有这个功能),但是记事本是作为程序员编辑器设计的,而不是IDE。虽然它有很多很酷的功能,但调试级别不是核心工具的一部分。
npp-plugins中也没有看到任何内容。

x8diyxa7

x8diyxa73#

我认为如果编辑器不提供便利,python debugger是最好的选择:)
Quick guide:

from pdb import set_trace as bp

code
code
bp()
code
code

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

hiz5n14c

hiz5n14c4#

你想过用Komodo吗?它是开源的,有Windows、Linux和MAC的端口(我想)。
这可能是一个替代方案,如果你想从notepad++用户那里得到一些建议,看看这个网站上的以下帖子:
Komodo Edit and Notepad++ ::: Pros & Cons ::: Python dev
这里的一些npp用户似乎已经切换到python编辑运行等...
我个人对Komodo上的调试了解不多,但由于它是一个IDE,所以如果你不能轻松地完成它,我会感到惊讶

q7solyqu

q7solyqu5#

我真的不明白为什么Shashi's answer没有被投票支持,因为他给出的链接提供了一种方法来按照OP的要求单步执行python脚本。
所以对于所有不了解pdb模块的人来说,在导入它的时候,pdb.set_trace()函数允许你单步调试它后面的代码区域,它非常类似于visual studios的调试方法,当你单步调试代码的时候,你可以输入各种各样的命令。
其中之一是p <expression>,它允许用户打印局部和全局范围内变量的当前状态。

disho6za

disho6za6#

我知道已经11年了,我有点晚了,我知道它不是记事本++,但请考虑Visual Studio代码。
它是免费的,易于安装(包括编辑器本身和它使用的任何python解释器),它被广泛使用,远没有Visual Studio的对应物那么臃肿。它似乎也是许多Cisco相关课程材料的IDE选择。
编写代码,单击代码窗格左侧插入断点,单击调试器图标(突出显示),然后即可:

相关问题