Python对象检查器?

2 投票
5 回答
2717 浏览
提问于 2025-04-15 14:39

除了使用像Eclipse这样的集成开发环境(IDE)和调试工具来编写Python程序,还有没有什么小工具可以做到以下几点:

  • 在运行程序时,我想在某个地方插入一个钩子(就像插入打印语句一样),然后打开一个窗口来查看对象的详细信息(以树形结构显示)
  • 关闭这个窗口后,程序应该继续运行

这个工具不需要特别完美,也不一定要非常稳定,甚至可以是一些小示例代码,展示如何使用某个小部件库,比如wx。最好是跨平台的(不要是PyObjC程序,或者在Windows上类似的东西)。

有没有什么好主意呢?

编辑: 是的,我知道pdb这个工具,但我想要的是一个图形化的当前对象树。

不过,这里有一个很好的介绍,教你如何使用pdb(在Django中使用): pdb + Django

5 个回答

1

如果可以接受商业软件的话,Wingware 可能正好符合提问者的需求(Wingware确实有免费的版本,但我觉得这些免费版没有提问者所需要的完整调试功能,只有付费版才提供这些功能)。

2

pdb不是一个窗口程序,它是在控制台里运行的,但这是调试Python程序的标准方法。

在你想要暂停程序的地方插入这个:

import pdb;pdb.set_trace() 

这样你会在标准输出上看到一个提示符。

5

Winpdb 是一个跨平台的图形化 GPL Python 调试工具,带有对象检查器。

它支持通过网络进行远程调试,可以处理多个线程,修改命名空间,嵌入式调试,进行加密通信,而且速度比 pdb 快多达 20 倍。

其他一些特点包括:

  • GPL 许可证。Winpdb 是免费软件。
  • 兼容 CPython 2.3 到 2.6 以及 Python 3000。
  • 兼容 wxPython 2.6 到 2.8。
  • 跨平台,已经在 Ubuntu Jaunty 和 Windows XP 上测试过。
  • 用户界面方面:rpdb2 是基于控制台的,而 winpdb 需要 wxPython 2.6 或更高版本。

这里有一张截图,左上角显示了本地对象树。

Screenshot
(来源: winpdb.org)

撰写回答