我想标题说明了一切,我会详细说明。

在非Django程序中(甚至在非Web项目中),我想通过以下方式获取堆栈跟踪:


常规文件和行号信息,周围行的代码和范围标识(功能名称和诸如此类)。
局部范围变量(只是它们的名称和repr()会很棒)


有图书馆吗?我可以为它提供视觉插件的视觉调试器吗?我该如何获取此堆栈跟踪?

最佳答案

您可以从Python文档及其中的示例中查看traceback module

import sys, traceback

def run_user_code(envdir):
    source = raw_input(">>> ")
    try:
        exec source in envdir
    except:
        print "Exception in user code:"
        print '-'*60
        traceback.print_exc(file=sys.stdout)
        print '-'*60

envdir = {}
while 1:
    run_user_code(envdir)

10-04 22:34