0

こんにちは、Windows で Python 2.5 を実行していますが、アプリケーションがデバッグ情報ではなく例外を受け取るたびに、traceback.py ファイル自体でエラーが発生します。このmbのパッチまたは置換ファイルの修正を知っている人は誰でも。

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

4

1 に答える 1

2

考えられる原因:

  1. logging.exception()アクティブな例外がない場合の呼び出し
  2. exc_info=1アクティブな例外がない場合に、を使用してロギング関数を呼び出します。
  3. ロギング関数を使用exc_info=(None, None, None)してロギング関数を呼び出す (例: 手動で例外ロギングを行う場合)。

logging.exceptionexcept ブロックの外では使用しないでください。

例外は、にNone渡された例外タイプによって発生traceback.print_exceptionします。つまり、処理するアクティブな例外がありません。

一方、リンク先のニュースグループの投稿は、その特定のトレースバックを引き起こしたのは標準ライブラリの回帰であったことを示しています。Python を 2.5.1 にアップグレードすると、この特定の問題が修正されます。

于 2012-08-24T17:17:44.030 に答える