Python程序高效地调试

Posted roucheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python程序高效地调试相关的知识,希望对你有一定的参考价值。

现在我在debug python程序就只是简单在有可能错误的地方print出来看一下,不知道python有没像c++的一些IDE一样有单步调试这类的工具?或者说各位python大神一般是怎么debug自己的python程序的?

 

应该用过 IPython 吧?想象一下,抛出异常时自动把你带到 IPython Shell 是不是很开心?而且和普通的IPython不同,这个时候可以调用 p (print), up(up stack), down(down stack) 之类的命令。还能创建临时变量,执行任意函数。

事实上这是可以实现的, 而且很简单,不过你要先安装 IPython。然后把以下代码保存为 `crash_on_ipy.py`

import sys

class ExceptionHook:
    instance = None

    def __call__(self, *args, **kwargs):
        if self.instance is None:
            from IPython.core import ultratb
            self.instance = ultratb.FormattedTB(mode=\'Plain\',
                 color_scheme=\'Linux\', call_pdb=1)
        return self.instance(*args, **kwargs)

sys.excepthook = ExceptionHook()
#何问起 hovertree.com

然后在你的项目代码某个地方 import crash_on_ipy 就可以了。

这个方法不需要 IDE.

推荐:http://www.cnblogs.com/roucheng/p/pythonstring.html

以上是关于Python程序高效地调试的主要内容,如果未能解决你的问题,请参考以下文章

如何快速高效地开发和调试基于gradle管理的web应用

python调试之pdb调试工具

python调试:pdb基本用法(转)

如何在Vim里高效地开发Python程序?

python学习笔记012——pdb调试

使用 pdb 进行调试