Python调试技巧

15 浏览
0 Comments

Python调试技巧

你对调试Python有什么最好的建议?\n请不要只列出一个特定的调试器,而不说它实际能做什么。\n

相关

\n

0
0 Comments

Python调试提示

当使用pdb调试工具时,您可以为快捷方式定义别名。我使用以下别名:

# Ned的.pdbrc文件
# 打印一个排序后的字典。%1是字典,%2是键名的前缀。
alias p_ for k in sorted(%1.keys()): print "%s%-15s= %-80.80s" % ("%2",k,repr(%1[k]))
# 打印一个对象的实例变量。
alias pi p_ %1.__dict__ %1.
# 打印self的实例变量。
alias ps pi self
# 打印局部变量。
alias pl p_ locals() local:
# 下一步、列表,以及步进和列表的快捷键。
alias nl n;;l
alias sl s;;l
# 向上和向下遍历堆栈的快捷方式。
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

如何定义这些别名?

将这些内容放在~/.pdbrc文件中。

在Windows上,您可以将其放在~/_ipython/ipythonrc.ini文件中。

0
0 Comments

Python调试提示

在Python开发过程中,我们经常会遇到各种错误和bug,而调试就是解决这些问题的关键。本文将介绍一个常用的Python调试工具——PuDB,它是一个全屏、基于控制台的Python调试器。

PuDB的目标是在更轻量且键盘友好的包装中提供现代GUI调试器的所有便利功能。它允许您在编写和测试代码的同时进行调试,而不需要离开终端。如果您曾经使用过出色但现在已经过时的DOS-based Turbo Pascal或C工具,那么PuDB的用户界面可能会让您感到熟悉。

以下是PuDB的界面截图:

pudb screenshot

PuDB非常适用于调试独立的脚本,您只需运行以下命令即可:

python -m pudb.run my-script.py

您可以通过以下命令来安装PuDB:

pip install pudb

0
0 Comments

Python调试技巧

在Python中,调试是一项非常重要的技巧。当我们的程序出现问题或错误时,调试可以帮助我们找到问题所在,并解决它们。本文介绍了一些Python调试的技巧和工具。

一种常见的调试方法是使用pdb模块。我们可以在代码中的任何位置插入pdb.set_trace(),它将作为一个断点,程序在此处停止执行,进入pdb调试模式。在调试模式下,我们可以使用一些命令来查看和修改程序的状态。

例如,我们可以使用p命令来打印变量的值。在下面的例子中,我们将变量a设为字符串"a string",然后使用p a命令来查看它的值。

>>> import pdb
>>> a = "a string"
>>> pdb.set_trace()
--Return--
> (1)()->None
(Pdb) p a
'a string'
(Pdb)

要继续执行程序,可以使用c命令(或contcontinue命令)。

除了查看变量的值,我们还可以在pdb中执行任意的Python表达式。例如,如果我们发现了一个错误,我们可以修复代码,然后在pdb中输入一个表达式,以在运行的代码中产生相同的效果。

另一个常用的调试工具是ipdb,它是pdb在IPython中的一个版本。它允许我们在IPython的所有功能中使用pdb,包括Tab键补全。

我们还可以设置pdb在未捕获的异常发生时自动运行。这样,当程序出现异常时,pdb会自动启动调试模式,帮助我们找到问题所在。

此外,还有一些其他的调试工具,如Pydb和pydbgr。它们是对pdb的增强版本,提供了更多的功能和选项。

对于使用SublimeText开发的Python项目,我们可以使用一个插件来添加断点。这样,在代码中插入断点后,程序执行到该处时会暂停,我们可以在SublimeText中进行调试。

如果我们正在开发一个Web应用程序,我们可以在调试模式下为myserver.com/pdb添加一个视图,其中只需插入import pdb; pdb.set_trace(),当访问该视图时,程序会进入pdb调试模式。如果我们使用的是Flask/Werkzeug框架,它还提供了一个交互式调试器,我们可以使用assert False来暂停程序的执行。

总之,调试是一个重要的技巧,可以帮助我们找到和解决程序中的问题和错误。Python提供了丰富的调试工具和技巧,我们可以根据实际需要选择适合的工具和方法来进行调试。

0