首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python调试技巧

Python调试技巧
EN

Stack Overflow用户
提问于 2009-10-25 20:16:39
回答 18查看 370.6K关注 0票数 164

您调试Python的最佳技巧是什么?

请不要只列出一个特定的调试器,而不知道它实际能做什么。

相关

EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2009-10-25 20:32:37

PDB

您可以使用pdb模块,在任何地方插入pdb.set_trace(),它将充当断点。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> import pdb
>>> a="a string"
>>> pdb.set_trace()
--Return--
> <stdin>(1)<module>()->None
(Pdb) p a
'a string'
(Pdb)

若要继续执行,请使用c (或contcontinue)。

可以使用pdb执行任意Python表达式。例如,如果发现错误,可以更正代码,然后键入类型表达式在运行的代码中具有相同的效果。

ipdb是IPython的pdb版本。它允许使用所有的IPython功能,包括选项卡完成。

对于一个未被察觉的异常,将pdb设置为自动运行也是可能的。

比德贝被写成是Pdb的增强版本。福利?

票数 139
EN

Stack Overflow用户

发布于 2011-06-20 14:46:13

http://pypi.python.org/pypi/pudb是一个全屏的、基于控制台的Python调试器.

它的目标是在一个更加轻量级和键盘友好的包中提供现代基于GUI的调试器的所有细节。在终端中,PuDB允许您在编写和测试代码的地方调试代码。如果您曾经使用过优秀的(但现在很古老)基于DOS的Turbo或C工具,那么PuDB的UI可能看起来很熟悉。

很适合调试独立脚本,只需运行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
python -m pudb.run my-script.py
票数 78
EN

Stack Overflow用户

发布于 2009-10-26 02:16:35

如果使用pdb,则可以为快捷方式定义别名。我用这些:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Ned's .pdbrc

# Print a dictionary, sorted. %1 is the dict, %2 is the prefix for the names.
alias p_ for k in sorted(%1.keys()): print "%s%-15s= %-80.80s" % ("%2",k,repr(%1[k]))

# Print the instance variables of a thing.
alias pi p_ %1.__dict__ %1.

# Print the instance variables of self.
alias ps pi self

# Print the locals.
alias pl p_ locals() local:

# Next and list, and step and list.
alias nl n;;l
alias sl s;;l

# Short cuts for walking up and down the stack
alias uu u;;u
alias uuu u;;u;;u
alias uuuu u;;u;;u;;u
alias uuuuu u;;u;;u;;u;;u
alias dd d;;d
alias ddd d;;d;;d
alias dddd d;;d;;d;;d
alias ddddd d;;d;;d;;d;;d
票数 40
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1623039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文