如何解决pyOpenGL glViewport's error for PyQt5

How to solve pyOpenGL glViewport's error for PyQt5

我正在尝试使用 pyqtgraph 为应用程序获取 3D 渲染,但我收到一个我不明白的错误。
我在未连接到互联网的远程桌面上 运行ning 脚本(它必须 运行 到远程桌面上)。因此,我通过 .whl 文件安装了 pyqtgraph、pyopenGL 和 pyqt5(已经安装了 Anaconda 发行版)
这是一个应该只显示空白 glViewport 的小代码:

# -*- coding: utf-8 -*-
import sys
import pyqtgraph.opengl as gl
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qt 

class Render3D(object):

    def __init__(self):
        self.app = QApplication(sys.argv)
        self.fen = QWidget(flags=Qt.Dialog)
        self.fen.setGeometry(100, 100, 1000, 800)
        self.fen.setWindowTitle("My window")

        self.disposition = QGridLayout()

        # viewport
        self.w = gl.GLViewWidget()

        self.disposition.addWidget(self.w, 0, 0)
        self.fen.setLayout(self.disposition)

        self.fen.show()
        sys.exit(self.app.exec_())

if __name__ == "__main__":

    test = Render3D()

我知道我的视口中没有项目(故意停用,因为错误来自视口本身)。我可以在另一台计算机上 运行 这个脚本而不会出现任何错误。 这是我在远程桌面上遇到的错误:

Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\pyqtgraph\opengl\GLViewWidget.py", line 246, in paintGL
    glViewport(*self.getViewport())
  File "C:\ProgramData\Anaconda3\lib\site-packages\OpenGL\platform\baseplatform.py", line 415, in __call__
    return self( *args, **named )
  File "C:\ProgramData\Anaconda3\lib\site-packages\OpenGL\error.py", line 230, in glCheckError
    raise self._errorClass(
OpenGL.error.GLError: GLError(
    err = 1282,
    description = b'op\xe9ration non valide',
    baseOperation = glViewport,
    cArguments = (0, 0, 978, 778)
)

您知道错误可能来自哪里吗?

问题出在显卡驱动上。我更新了它并且它有效! 如果遇到同样的问题,你应该检查一下。