2

我有一个长时间运行的 Python 程序,在某些时候会引发异常。有什么方法可以从 ipython 会话运行它并停止异常,以便我可以检查实时数据?

4

2 回答 2

3

您可能想要ipython -i yourscript.py,它将在解释器环境中执行您的脚本。但这不会让您检查发生异常的本地环境,例如函数中的局部变量——您只能检查全局变量。你可能想要这个:

In [1]: %run test.py
<exception occurs>
In [2]: %debug test.py

如果您不熟悉使用 PDB,请先查看一些文档

感谢 Thomas K 编辑

于 2013-02-08T15:11:29.463 回答
0

是的,取决于您的设置方式。您可以导入您的程序并像 try except 块中的任何其他模块一样运行它。

import yourprogram
try:
    yourprogram.main_function(args)
except:
    print "we blew up, investigate why"

如果您的程序不在函数中,您可能需要在导入周围放置 try 块。

这种方法的问题是您想要查看的变量可能不再在范围内。我通常在不同的点使用打印语句或日志消息来找出我所期望的不一样。

于 2013-02-08T15:56:02.173 回答