除了使用带有调试器的完全集成的IDE(如Eclipse)之外,还有什么小工具可以实现这个目的:
它不需要抛光,甚至不是绝对稳定的,它可以是像wx这样的小部件库的内省示例代码。平台独立会很好(不是PyObjC程序,或类似的东西在Windows上)。
有任何想法吗 ?
编辑:是的,我知道pdb,但我正在寻找所有当前对象的图形树。
不过,这里有一个很好的介绍如何使用pdb(在这种情况下在Django中):pdb + Django
Winpdb是一个独立于平台的图形GPL Python调试器,带有一个对象检查器。
它支持通过网络进行远程调试,多线程,命名空间修改,嵌入式调试,加密通信,速度比pdb快20倍。
其他一些功能:
这是一个屏幕截图,显示左上角的本地对象树。
(来源:winpdb.org)
pdb没有窗口化,它在控制台中运行,但它是在Python程序中调试的标准方法。
将其插入您要停止的位置:
import pdb;pdb.set_trace()
你会得到stdout的提示。
如果商业解决方案是可以接受的,Wingware可能是OP的愿望的答案(Wingware确实有免费版本,但我不认为他们有他需要的完全调试能力,付费版本确实提供)。
Python Debugging Techniques值得一读。和it's Reddit's comment也值得一读。我真的从Brian的评论中找到了一些不错的调试技巧。例如this comment和this comment。 当然,WingIDE很酷(对于一般的Python编码和Python代码调试),我每天都使用它。不幸的是WingIDE现在仍然无法嵌入IPython。
您可以使用qpyxswpoi语句使用ipython。一旦你的代码崩溃,你可以添加断点,查看对象等。启动调试器的一个非常粗略的方法是在代码的某一行使用%debug
,在ipython中运行它,在崩溃时运行raise Exception
类型。