运行 Python 出错后有没有办法访问变量

Is there a way to access variables after an error when running Python

我正在使用 Pycharm Community 4.5.4。我是运行一个需要很长时间才能完成的程序。

不幸的是,我在保存累积数据的行之前有一个打印语句有错误。我 运行 打印行本身并确认该行将失败。

有可能我在 运行 程序之后进行了更改,所以它不会失败,但我不能确定。这部分代码大约需要 90 个小时才能完成,如果执行时间保持在平均水平左右,我还剩下大约 30 个小时。

那么,如果失败了,有什么方法可以恢复数据吗?

澄清一下,我是 运行 而不是调试。此外,我正在进行线路分析,以查看每 2.5 小时迭代的时间是如何花费的。

所以我告诉你,你应该更新你的主模块以在断点处退出

import pdb
import random
import time
import os
import traceback
import sys


def main(*args, **kw):
    for i in range(10):
        print("OK I'm in %d" % os.getpid())
        time.sleep(4)
        if i == 9:
            raise Exception

if __name__ == '__main__':
    try:
        main()
    except:
        type, value, tb = sys.exc_info()
        traceback.print_exc()
        pdb.post_mortem(tb)

Starting python debugger automatically on error 信用。

并使用 Pycharm 附加到进程。如果出现错误,您将能够使用 pycharm 进行调试。