我有一个解码异常并将信息推送到文件中的函数。下面是我主要做的事情:
exc_info = sys.exc_info
txt = cgitb.text(exc_info)使用它,我得到了以下异常跟踪:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\job_queue\utils\start_workers.py", line 40, in start_worker
worker_loop(r_jq, worktype, worker_id)
File "C:\Python27\lib\site-packages\job_queue\server\jq_worker.py", line 55, in worker_loop
_job_machine(*job)
File "C:\Python27\lib\site-packages\job_queue\server\jq_worker.py", line 34, in _job_machine
do_verbose_exception()
File "C:\Python27\lib\site-packages\job_queue\server\errors.py", line 23, in do_verbose_exception
txt = cgitb.text(exc_info)
File "C:\Python27\lib\cgitb.py", line 214, in text
formatvalue=lambda value: '=' + pydoc.text.repr(value))
File "C:\Python27\lib\inspect.py", line 885, in formatargvalues
specs.append(strseq(args[i], convert, join))
File "C:\Python27\lib\inspect.py", line 840, in strseq
return convert(object)
File "C:\Python27\lib\inspect.py", line 882, in convert
return formatarg(name) + formatvalue(locals[name])
KeyError: 'connection'在此异常之后,我多次运行代码,但无法重现它。但是,我在文件cgitb.py或inspect.py中也没有找到任何对带有'connection‘键的字典的引用。
有没有人知道这是python的cgitb或检查文件的问题?有什么有用的建议吗?
发布于 2011-10-02 13:40:15
我不确定这个异常发生的具体原因,但是你读过cgitb模块的文档了吗?似乎从Python2.2开始,它已经支持将异常写到一个文件:http://docs.python.org/library/cgitb.html
可能类似于: cgitb.enable(0,"/my/log/directory") #或1(如果您希望在浏览器中看到它
就您的实际回溯而言,您确定'connection‘不是您自己的代码中使用的名称吗?“‘inspect”模块很可能试图检查您自己的代码来构建cgi回溯信息,并在某个地方获得错误的密钥?
发布于 2011-10-12 00:08:44
您向文本函数传递了错误的类型,下面的方法是正确的。
cgitb.text((sys.last_type,sys.last_value,sys.last_traceback))
https://stackoverflow.com/questions/7623329
复制相似问题