Python- "OpenGL.error"로거에 대한 처리기를 찾을 수 없습니다.


80

좋아요, 그것은 무엇이며 왜 Win2003 서버에서 발생하지만 WinXP에서는 발생하지 않습니다.

내 응용 프로그램에 전혀 영향을 미치지 않는 것 같지만 응용 프로그램을 닫으면이 오류 메시지가 나타납니다. 그리고 그것은 성가신 일입니다 (오류 메시지가 있어야하므로).

그래픽 작업을 수행하기 위해 pyOpenGl 및 wxPython을 사용하고 있습니다. 안타깝게도 저는이 Python 앱을 인수 한 C # 프로그래머이며이를 수행하려면 Python을 배워야했습니다.

코드와 버전 번호 등을 제공 할 수 있지만 여전히 기술적 인 내용을 배우고 있으므로 도움을 주시면 감사하겠습니다.

Python 2.5, wxPython 및 pyOpenGL


1
"핸들러를 찾을 수 없음"은 Python의 OpenGL 라이브러리뿐만 아니라 많은 Python 라이브러리에서 발생하는 표준 문제라고 생각합니다. 지금 당장은 "python no handlers can be found for logger"를 구글링 할 때이 질문이 정식 질문 / 솔루션에 가장 가까운 것처럼 보입니다.
Trevor Boyd Smith

답변:


197

OpenGL이 Win2003에서 일부 오류를보고하려고하지만 로깅 정보를 출력 할 시스템을 구성하지 않은 것 같습니다.

프로그램 시작 부분에 다음을 추가하면 stderr에서 오류에 대한 세부 정보를 볼 수 있습니다.

import logging
logging.basicConfig()

더 많은 구성 정보를 얻으려면 로깅 모듈 에 대한 문서 를 확인하세요. 개념적으로는 log4J와 비슷합니다.


1
정말 도움이되었습니다. 문제를 추적하지 않고 응용 프로그램에서 오류 텍스트를 가져올 수있었습니다.
Paige Watson

3

이 메시지를 제거 하는 적절한 방법 은 라이브러리 (OpenGL)의 루트 수준 로거에 대해 NullHandler를 구성하는 것입니다.


4
NullHandler로 로그 메시지를 무시하는 것이 옳은 일이 거의 없기 때문에 당신이 반대 투표를 받았다고 생각합니다. 보고 된 메시지는 종종 로거가 이미 구성되어야 할 시점에서 구성되지 않았으며 무언가를 기록하려는 구성 요소의 잠재적 인 문제를 무시하고 있다는 신호입니다. 어떤 경우에는 NullHandler를 사용하는 것이 올바른 방법 일 수 있지만 IMO는 거의 없습니다.
Moises Silva

라이브러리 NullHandler에 대한 @MoisesSilva는 필수입니다. 그것은 로깅을 해제하지 않습니다 - 그냥 수 세밀한는 생각을 제어reset.css
아나톨리 techtonik

당신이 옳습니다. 그러나이 질문의 맥락에서 op에는 OpenGL을 사용하는 자체 응용 프로그램이 있으므로 OpenGL이보고하려고하는 오류를 인쇄하도록 로거를 구성하는 것이 가장 좋습니다. 그로 인해 문제의 근본 원인을 해결하게됩니다.
Moises Silva

1
이 링크는 사람들이 Python logging모듈에 대해 갖는 일반적인 문제를 보여주는 흥미로운 자료 (관련 공식 Python 버그 보고서가있는 블로그 게시물)를 제공 합니다.
트레버 보이드 스미스

2

위의 로깅을 추가 한 후 py2exe setup.py 파일에서 제외하고 있던 TConstants 클래스가 누락되어 문제가 발생했음을 알 수있었습니다.

제외 된 목록에서 "Tconstants"를 제거한 후 더 이상 문제가 발생하지 않았습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.