【问题标题】:Error while running OpenGL code on Python 3.7 [duplicate]在 Python 3.7 上运行 OpenGL 代码时出错 [重复]
【发布时间】:2020-01-04 23:17:01
【问题描述】:

我刚刚安装了 OpenGL 以与 Python 3.7 和 PyQt5 一起使用,安装没有任何错误。当我尝试运行 PyQt5 for OpenGL 给出的示例代码时,只有 1 个示例代码运行,所有其他的都给出了错误。以下是与每个文件相关的错误:

openglwindow.py

self.m_gl.initializeOpenGLFunctions()

AttributeError: 'NoneType' 对象没有属性 'initializeOpenGLFunctions'

抓取器.py

文件“src/errorchecker.pyx”,第 53 行,在 OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError

OpenGL.error.GLError: GLError(

错误 = 1282,

description = b'无效操作',

baseOperation = glLightfv,

...

hellogl.py

文件“src/errorchecker.pyx”,第 53 行,在 OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError

OpenGL.error.GLError: GLError(

错误 = 1282,

description = b'无效操作',

baseOperation = glGetString,

cArguments = (GL_VENDOR,)

)

overpainting.py

文件“src/errorchecker.pyx”,第 53 行,在 OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError

OpenGL.error.GLError: GLError(

错误 = 1282,

description = b'无效操作',

baseOperation = glGenLists,

cArguments = (1,),

结果 = 0

)

samplebuffers.py

文件“src/errorchecker.pyx”,第 53 行,在 OpenGL_accelerate.errorchecker._ErrorChecker.glCheckError

OpenGL.error.GLError: GLError(

错误 = 1282,

description = b'无效操作',

baseOperation = glMatrixMode,

cArguments = (GL_PROJECTION,)

)

我使用的是 Windows 10,OpenGL 版本是 3.1。我该如何解决这个问题?

【问题讨论】:

    标签: python python-3.x opengl pyqt5 pyopengl


    【解决方案1】:

    经过大量搜索,我发现默认情况下 Windows 使用 ANGLE,这是一个在 Direct 3D 之上实现 OpenGL ES 的库。

    所以为了强制应用程序使用 OpenGL 而不是 ANGLE,我添加了

    QCoreApplication.setAttribute(Qt.AA_UseDesktopOpenGL)
    

    另外,我使用了Unofficial Windows PyOpenGL Binaries

    我从以下 2 个来源获得了解决方案:

    Source 1 - RiverBank Computing

    Source 2 - StackOverflow

    【讨论】:

      猜你喜欢
      • 2019-08-11
      • 1970-01-01
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      相关资源
      最近更新 更多