Python-ロガー「OpenGL.error」のハンドラーが見つかりませんでした


80

さて、それは何ですか、そしてなぜそれはWin2003サーバーで発生しますが、WinXPでは発生しません。

アプリケーションにはまったく影響がないようですが、アプリケーションを閉じるとこのエラーメッセージが表示されます。そしてそれは迷惑です(エラーメッセージがあるはずです)。

私はpyOpenGlとwxPythonを使用してグラフィックスを実行しています。残念ながら、私はこのPythonアプリを引き継いだC#プログラマーであり、それを行うにはPythonを学ぶ必要がありました。

コードやバージョン番号などを提供することはできますが、まだ技術的なことを学んでいるので、助けていただければ幸いです。

Python 2.5、wxPython、pyOpenGL


1
「ハンドラーが見つかりませんでした」というのは、PythonのOpenGLライブラリだけでなく多くのPythonライブラリで発生する標準的な問題だと思います。今のところ、「pythonでロガーのハンドラーが見つかりませんでした」とグーグルで検索すると、この質問が正規の質問/解決策に最も近いようです。
Trevor Boyd Smith

回答:


197

OpenGLがWin2003でエラーを報告しようとしているようですが、ログ情報を出力する場所をシステムに構成していません。

プログラムの先頭に以下を追加すると、stderrにエラーの詳細が表示されます。

import logging
logging.basicConfig()

ロギングモジュールに関するドキュメントをチェックアウトして、より多くの設定情報を取得します。概念的には、log4Jに似ています。


1
これは本当に役に立ちました。問題を追跡するのではなく、アプリケーションからエラーテキストを取得することができました。
ペイジワトソン

3

適切な方法このメッセージを取り除くためには、あなたのライブラリーのルートレベルロガー(OpenGLの)ためにNullHandlerを設定することです。


4
NullHandlerでログメッセージを無視することが正しいことはめったにないので、あなたは反対票を投じたと思います。報告されたメッセージは、多くの場合、ロガーがすでに構成されているはずの時点で構成されておらず、何かをログに記録しようとしたコンポーネントの潜在的な問題を無視していることを示しています。場合によっては、NullHandlerを使用することが正しいことかもしれませんが、IMOはめったにありません。
Moises Silva

ライブラリNullHandlerの@MoisesSilvaは必須です。これは、ログをオフにしない-それはちょうどそれを細かく制御が考えることができますreset.css
アナトリーtechtonik

あなたが正しいです。ただし、この質問のコンテキストでは、操作にはOpenGLを使用する独自のアプリケーションがあるため、OpenGLが報告しようとしたエラーを出力するようにロガーを構成するのが最善です。そのため、彼は問題の根本原因を修正することになりました。
Moises Silva

1
このリンクは、Pythonloggingモジュールで人々が抱える一般的な問題を示す興味深い読み物(関連する公式のPythonバグレポートを含むブログ投稿)を提供します。
Trevor Boyd Smith

2

上記のログを追加した後、py2exesetup.pyファイルで除外していたTConstantsクラスが欠落していることが問題の原因であることがわかりました。

除外リストから「Tconstants」を削除した後、問題は発生しなくなりました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.