你所需要的,不仅仅是一个好用的代理。
以下是本文作者做调试或分析时用过的工具的一个概览,可以学习一下.
日志
没错,就是日志.再多强调在你的应用里保留足量的日志的重要性也不为过.你应当对重要的内容打日志.如果你的日志打的足够好的话,单看日志你就能发现问题所在.那样可以节省你大量的时间.
如果一直以来你都在代码里乱用 print 语句,马上停下来.换用logging.debug.以后你还可以继续复用,或是全部停用等等.
有时更好的办法是看执行了哪些语句.你可以使用一些IDE的调试器的单步执行,但你需要明确知道你在找那些语句,否则整个过程会进行地非常缓慢.
标准库里面的trace模块,可以打印运行时包含在其中的模块里所有执行到的语句.(就像制作一份项目报告)
这会产生大量输出(执行到的每一行都会被打印出来,你可能想要用grep过滤那些你感兴趣的模块).
比如:
调试器
以下是如今应该人尽皆知的一个基础介绍:
或者
或者(输入 c 开始执行脚本)
在输入-计算-输出循环(注:REPL,READ-EVAL-PRINT-LOOP的缩写)环境下,可以有如下操作:
其余的几乎全部指令(还有很少的其他一些命令除外),在当前步帧上当作python代码进行解析.
如果你觉得挑战性还不够的话,可以试下smiley,-它可以给你展示那些变量而且你能使用它来远程追踪程序.
pdb的直接替代者:
ipdb(easy_install ipdb) – 类似ipython(有自动完成,显示颜色等)
pudb(easy_install pudb) – 基于curses(类似图形界面接口),特别适合浏览源代码
安装方式:
用下面的方式取代以前的pdb.set_trace():
现在运行winpdb,文件-关联
不喜欢Winpdb?也可以直接包装PDB在TCP之上运行!
这样做:
只想要一个REPL环境?试试IPython如何?
如果你不需要一个完整齐全的调试器,那就只需要用一下的方式启动一个IPython即可: