Python-找不到记录程序“ OpenGL.error”的处理程序


80

好的,这是什么,为什么它会在Win2003服务器上而不是在WinXP上发生。

它似乎根本不影响我的应用程序,但是当我关闭应用程序时收到此错误消息。而且很烦人(因为错误消息应该如此)。

我正在使用pyOpenGl和wxPython做图形工作。不幸的是,我是一个接管了这个Python应用程序的C#程序员,我必须学习Python才能做到这一点。

我可以提供代码和版本号等,但是我仍在学习技术知识,因此将不胜感激。

Python 2.5,wxPython和pyOpenGL


1
我认为“找不到处理程序”是一个典型的问题,不仅对于Python的OpenGL库而且对于许多python库都将发生。尽管现在当我在Google上搜索“ python找不到记录程序的处理程序”时,我发现这个问题似乎离我最接近规范的问题/解决方案。
Trevor Boyd Smith,

如果有人来这里寻找这个stackoverflow.com/q/44188270/1581226
qwerty

Answers:


197

看起来OpenGL试图报告Win2003上的某些错误,但是您尚未配置系统在何处输出日志记录信息。

您可以将以下内容添加到程序的开头,您将在stderr中看到错误的详细信息。

import logging
logging.basicConfig()

日志记录模块上签出文档以获取更多配置信息,从概念上讲,它类似于log4J。


1
这真的很有帮助。我能够从应用程序中获取错误文本,而不是找出问题所在。
Paige Watson

3

摆脱此消息的正确方法是为库(OpenGL)的根级别记录器配置NullHandler。


4
我认为您不赞成这样做,因为忽略NullHandler的日志消息很少是正确的选择。报告的消息通常表明在尚未配置记录器的情况下,应该已经对其进行了配置,并且您还忽略了试图记录某些内容的组件的潜在问题。在某些情况下,使用NullHandler可能是正确的选择,但很少使用IMO。
Moises Silva

必须为库NullHandler使用@MoisesSilva。它不会关闭日志记录-只是允许对其进行细粒度的控制Thinkreset.css
anatoly techtonik

你是对的。但是,在此问题的上下文中,op具有使用OpenGL的自己的应用程序,因此最好将记录器配置为打印OpenGL试图报告的错误。这导致他解决了问题的根本原因。
Moises Silva

1
该链接提供了一些有趣的内容(带有相关的官方Python错误报告的博客文章),展示了人们在使用Pythonlogging模块时遇到的常见问题。
Trevor Boyd Smith,

2

在添加上面的Logging之后,我能够看到问题是由缺少的TConstants类引起的,该类排除在py2exe setup.py文件中。

从排除列表中删除“ Tconstants”后,我不再遇到问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.