Python - nie znaleziono programów obsługi dla programu rejestrującego „OpenGL.error”


80

Okay, co to jest i dlaczego występuje na serwerze Win2003, ale nie na WinXP.

Wydaje się, że nie ma to żadnego wpływu na moją aplikację, ale po zamknięciu aplikacji pojawia się ten komunikat o błędzie. I to jest denerwujące (tak jak powinny być komunikaty o błędach).

Do tworzenia grafiki używam pyOpenGl i wxPython. Niestety, jestem programistą C #, który przejął tę aplikację w Pythonie i musiałem się nauczyć Pythona, aby to zrobić.

Mogę podać kod, numery wersji itp., Ale wciąż uczę się technicznych rzeczy, więc każda pomoc będzie mile widziana.

Python 2.5, wxPython i pyOpenGL


1
Myślę, że „nie można znaleźć programów obsługi” to problem kanoniczny, który występuje nie tylko w przypadku biblioteki OpenGL języka Python, ale także wielu bibliotek Pythona. Jednak teraz, gdy wyszukuję w Google „python nie można znaleźć programów obsługi dla rejestratora”, uważam, że to pytanie wydaje się być najbliższe pytaniu / rozwiązaniu kanonicznemu.
Trevor Boyd Smith

Na wypadek, gdyby ktoś przyszedł tutaj i szukał tego stackoverflow.com/q/44188270/1581226
qwerty

Odpowiedzi:


197

Wygląda na to, że OpenGL próbuje zgłosić błąd w Win2003, ale nie skonfigurowałeś systemu, gdzie mają wyświetlać informacje logowania.

Możesz dodać następujące elementy na początku swojego programu, a zobaczysz szczegóły błędu w stderr.

import logging
logging.basicConfig()

Sprawdź dokumentację dotyczącą modułu logowania , aby uzyskać więcej informacji o konfiguracji, koncepcyjnie jest podobna do log4J.


1
To było naprawdę pomocne. Udało mi się uzyskać tekst błędu z mojej aplikacji, a nie śledzić problemy.
Paige Watson

3

Właściwy sposób , aby pozbyć się tego komunikatu jest skonfigurowanie NullHandler na poziomie rejestratora głównego biblioteki (OpenGL).


4
Zakładam, że zostałeś przegłosowany, ponieważ ignorowanie komunikatów dziennika za pomocą NullHandler rzadko jest właściwym rozwiązaniem. Zgłaszany komunikat jest często sygnałem, że program rejestrujący nie został skonfigurowany w momencie, w którym powinien być już skonfigurowany, a ponadto ignorujesz potencjalny problem z komponentem, który próbował coś zarejestrować. W niektórych przypadkach użycie NullHandler może być właściwą rzeczą, ale rzadko IMO.
Moises Silva

@MoisesSilva dla biblioteki NullHandler jest koniecznością. Nie wyłącza logowania - po prostu pozwala na precyzyjną kontrolę nad nim. Myślreset.css
anatolijny techtonik

Masz rację. Jednak w kontekście tego pytania operator ma własną aplikację, która korzysta z OpenGL, więc najlepiej jest skonfigurować program rejestrujący, aby wyświetlał błąd, który OpenGL próbował zgłosić. To doprowadziło go do usunięcia pierwotnej przyczyny problemu.
Moises Silva

1
Link zawiera interesujące informacje (post na blogu z powiązanymi oficjalnymi raportami błędów Pythona), które demonstrują typowe problemy, które ludzie mają z loggingmodułem Pythona .
Trevor Boyd Smith

2

Po dodaniu powyższego Logowania mogłem zobaczyć, że problem był spowodowany brakiem klasy TConstants, którą wykluczyłem w pliku py2exe setup.py.

Po usunięciu „Tconstants” z listy wykluczonych nie miałem już problemów.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.