Python - Für den Logger "OpenGL.error" wurden keine Handler gefunden.

80

Okay, was ist das und warum tritt es auf dem Win2003-Server auf, aber nicht auf WinXP.

Es scheint meine Anwendung überhaupt nicht zu beeinträchtigen, aber ich erhalte diese Fehlermeldung, wenn ich die Anwendung schließe. Und es ist ärgerlich (wie Fehlermeldungen sein sollten).

Ich benutze pyOpenGl und wxPython, um die Grafik zu machen. Leider bin ich ein C # -Programmierer, der diese Python-App übernommen hat, und ich musste Python lernen, um dies zu tun.

Ich kann Code und Versionsnummern usw. angeben, aber ich lerne immer noch die technischen Dinge, daher wäre jede Hilfe dankbar.

Python 2.5, wxPython und pyOpenGL

Paige Watson
quelle
1
Ich denke, dass "keine Handler gefunden werden konnten" ein kanonisches Problem ist, das nicht nur bei Pythons OpenGL-Bibliothek, sondern bei vielen Python-Bibliotheken auftritt. Im Moment, wenn ich google "Python konnte keine Handler für Logger gefunden werden", finde ich, dass diese Frage einer kanonischen Frage / Lösung am nächsten kommt.
Trevor Boyd Smith
Für den Fall, dass jemand hierher kam, um nach diesem stackoverflow.com/q/44188270/1581226
qwerty

Antworten:

197

Offenbar versucht OpenGL, einen Fehler unter Win2003 zu melden. Sie haben Ihr System jedoch nicht so konfiguriert, dass Protokollierungsinformationen ausgegeben werden.

Sie können am Anfang Ihres Programms Folgendes hinzufügen, und Sie werden Details des Fehlers in stderr sehen.

import logging
logging.basicConfig()

Checkout-Dokumentation zum Protokollierungsmodul , um weitere Konfigurationsinformationen zu erhalten. Konzeptionell ähnelt es log4J.

Kozyarchuk
quelle
1
Das war wirklich hilfreich. Ich konnte den Fehlertext aus meiner Anwendung herausholen und die Probleme nicht aufspüren.
Paige Watson
3

Der richtige Weg , um diese Nachricht zu entfernen, besteht darin, NullHandler für den Root-Level-Logger Ihrer Bibliothek (OpenGL) zu konfigurieren.

anatoly techtonik
quelle
4
Ich nehme an, Sie wurden abgelehnt, weil das Ignorieren von Protokollnachrichten mit dem NullHandler selten das Richtige ist. Die gemeldete Nachricht ist häufig ein Zeichen dafür, dass der Logger zu einem Zeitpunkt nicht konfiguriert wurde, an dem er bereits konfiguriert werden sollte, und Sie ignorieren auch ein potenzielles Problem mit der Komponente, die versucht hat, etwas zu protokollieren. In einigen Fällen ist die Verwendung des NullHandlers möglicherweise das Richtige, aber selten IMO.
Moises Silva
@ MoisesSilva für eine Bibliothek NullHandler ist ein Muss. Es reset.css
schaltet
Du hast recht. Im Zusammenhang mit dieser Frage verfügt der Op jedoch über eine eigene Anwendung, die OpenGL verwendet. Daher ist es am besten, den Logger so zu konfigurieren, dass der Fehler gedruckt wird, den OpenGL zu melden versucht hat. Das führte ihn dazu, die Grundursache des Problems zu beheben.
Moises Silva
1
Der Link bietet einige interessante Informationen (Blogbeitrag mit zugehörigen offiziellen Python-Fehlerberichten), die häufige Probleme mit dem Python- loggingModul aufzeigen .
Trevor Boyd Smith
2

Nachdem ich die obige Protokollierung hinzugefügt hatte, konnte ich feststellen, dass das Problem durch die fehlende TConstants-Klasse verursacht wurde, die ich in der Datei py2exe setup.py ausgeschlossen habe.

Nachdem ich die "Tconstants" aus der ausgeschlossenen Liste entfernt hatte, hatte ich keine Probleme mehr.

Paige Watson
quelle