Python调试技巧

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

请不要仅仅列出特定的调试器,而不会说明它实际上可以做什么。

有关

  • 什么是让我的Python代码第一次运行的好方法? - 这讨论了最小化错误

  • PDB

    你可以使用pdb模块,在任何地方插入pdb.set_trace() ,它将作为一个断点。

    >>> 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版本。 它允许使用包含Tab完成功能的所有IPython功能。

    也可以将pdb设置为自动运行未捕获的异常。

    Pydb被写为一个增强版的Pdb。 好处?


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

    它的目标是以更轻量级和键盘友好的软件包提供基于GUI的现代调试器的所有优点。 PuDB允许你在你编写和测试的地方调试代码 - 在终端中。 如果你已经使用了基于DOS的Turbo Pascal或C工具,但是PuDB的UI可能看起来很熟悉。

    pudb截图

    很好的调试独立脚本,只需运行

    python -m pudb.run my-script.py
    

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

    # 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
    
    链接地址: http://www.djcxy.com/p/42813.html

    上一篇: Python debugging tips

    下一篇: Hidden features of Bash