2012-08-24 29 views
0

你好,我在Windows上运行Python 2.5,每当我的应用程序得到一个异常,而不是看到调试信息时,我得到了traceback.py文件本身的错误。任何人都知道修补程序或替换文件。Windows Python 2.5 Traceback.py Nonetype错误

Traceback (most recent call last): 
    File "C:\Python25\lib\logging\__init__.py", line 744, in emit 
    msg = self.format(record) 
    File "C:\Python25\lib\logging\__init__.py", line 630, in format 
    return fmt.format(record) 
    File "C:\Python25\lib\logging\__init__.py", line 426, in format 
    record.exc_text = self.formatException(record.exc_info) 
    File "C:\Python25\lib\logging\__init__.py", line 398, in formatException 
    traceback.print_exception(ei[0], ei[1], ei[2], None, sio) 
    File "C:\Python25\lib\traceback.py", line 126, in print_exception 
    lines = format_exception_only(etype, value) 
    File "C:\Python25\lib\traceback.py", line 176, in format_exception_only 
    stype = etype.__name__ 
AttributeError: 'NoneType' object has no attribute '__name__' 

===编辑===

在邮件列表中找到

同样的错误,在这里过时的答案似乎

http://mail.python.org/pipermail/python-dev/2006-September/068975.html

+0

也许你可以举出一个演示这个错误的例子代码? – g19fanatic

+0

这是很难做到的,因为我没有得到这个堆栈跟踪。我假设这是python的traceback.py而不是我的代码的问题,因为上面的所有内容都与python25 \ lib \ – BillPull

+0

有关,如果您无法区分哪个部分会给出错误(这可以简单地通过评论你的代码的部分,直到再次发生,然后重新创建这个小功能),我们无法真正帮助你。我可能会说它有更多的东西与你的代码做什么有关,而不是蟒蛇。你可以很容易地做的东西,将使pythons失效内置的异常处理... – g19fanatic

回答

2

可能的原因:

  1. 调用logging.exception()时没有活跃的例外
  2. 当没有活动异常时,调用exc_info=1的日志记录功能。
  3. 用日志功能exc_info=(None, None, None)调用日志功能(例如,如果手动执行异常日志记录)。

你不应该使用除了块以外的logging.exception

异常是由传送到traceback.print_exceptionNone异常类型引起的,这意味着没有活动异常需要处理。

与此同时,发布链接到的新闻组表明它是标准库中的回归,导致了特定的回溯。你可能想尝试将你的Python升级到2.5.1,这解决了这个特定的问题。

+0

谢谢。是的,我是这个项目的全新产品,因此在异常中没有文件引用基本上不可能找到根本原因 – BillPull

+0

您也可以考虑将Python升级到2.5.1,因为它们放入了可以防止此特定异常的补丁。 – nneonneo