Python - Не вдалося знайти обробників для реєстратора “OpenGL.error”


80

Гаразд, що це таке, і чому це відбувається на сервері Win2003, але не на WinXP.

Здається, це взагалі не впливає на мою програму, але я отримую це повідомлення про помилку, коли закриваю програму. І це дратує (як повинно бути повідомлення про помилки).

Я використовую pyOpenGl та wxPython для роботи з графікою. На жаль, я програміст на C #, який взяв на себе цю програму Python, і мені довелося навчитися Python, щоб це зробити.

Я можу надати код, номери версій тощо, але я все ще вивчаю технічні матеріали, тому будь-яка допомога буде вдячна.

Python 2.5, wxPython та pyOpenGL


1
Я думаю, що "жодних обробників не вдалося знайти" - це канонічна проблема, яка виникає не лише для бібліотеки OpenGL Python, але і для багатьох бібліотек python. Зараз, коли я гуглюю "python не знайшов обробників для реєстратора", я вважаю, що це питання, здається, є найближчим до канонічного питання / рішення.
Тревор Бойд Сміт,

На випадок, якщо хтось приїде сюди шукати цей stackoverflow.com/q/44188270/1581226
qwerty

Відповіді:


197

Схоже, OpenGL намагається повідомити про якусь помилку на Win2003, однак ви не налаштували свою систему, куди виводити інформацію про реєстрацію.

Ви можете додати наступне на початку програми, і ви побачите деталі помилки в stderr.

import logging
logging.basicConfig()

Отримайте документацію щодо модуля реєстрації, щоб отримати більше інформації про конфігурацію, концептуально вона подібна до log4J.


1
Це було дуже корисно. Я зміг отримати текст помилки з моєї програми, а не відстежувати проблеми.
Пейдж Уотсон

3

Правильний спосіб , щоб позбутися від цих слів , щоб налаштувати NullHandler для кореневого рівня реєстратора вашої бібліотеки (OpenGL).


4
Я припускаю, що ви проголосували проти, оскільки ігнорування повідомлень журналу за допомогою NullHandler рідко буває правильним способом. Повідомлення, про яке повідомляється, часто є знаком того, що реєстратор не був налаштований у той момент, коли він вже повинен бути налаштований, і ви також ігноруєте потенційну проблему з компонентом, який намагався щось увійти. У деяких випадках використання NullHandler може бути правильним рішенням, але рідко IMO.
Moises Silva

@MoisesSilva для бібліотеки NullHandler є обов'язковим. Це не вимикає ведення журналу - воно лише дозволяє reset.css
чітко

Ти правий. Однак у контексті цього питання, у оператора є своя програма, яка використовує OpenGL, тому найкраще налаштувати реєстратор для друку помилки, про яку OpenGL намагався повідомити. Це призвело його до усунення першопричини проблеми.
Moises Silva

1
Посилання містить цікаве читання (допис у блозі з відповідними офіційними звітами про помилки Python), яке демонструє загальні проблеми, які виникають у людей з loggingмодулем Python .
Тревор Бойд Сміт,

2

Після додавання журналу вище, я зміг побачити, що проблему спричинив відсутність класу TConstants, який я виключив у файлі py2exe setup.py.

Після вилучення "Константи" зі списку виключених у мене більше не виникало проблем.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.