PyOpenGL :: OpenGL.error.NullFunctionError:尝试调用未定义的函数 glutInit,在调用之前检查 bool(glutInit)

问题描述

我非常关注这个easy guide,以便我迈出进入 PyOpenGL 的第一步。

  1. 我安装了 period_to ,一切正常。

  2. 我通过测试代码测试了安装:

    导入OpenGL.GL 导入 OpenGL.gluT 导入OpenGL.glu print("Imports successfully!") # 如果你看到这个打印到控制台,那么安装成功

一切顺利

我现在运行这个脚本:

pip install PyOpenGL PyOpenGL_accelerate

我收到的错误from OpenGL.GL import * from OpenGL.gluT import * from OpenGL.glu import * w,h= 500,500 def square(): glBegin(GL_QUADS) glVertex2f(100,100) glVertex2f(200,200) glVertex2f(100,200) glEnd() def iterate(): glViewport(0,500,500) glMatrixMode(GL_PROJECTION) glLoadIdentity() glOrtho(0.0,0.0,1.0) glMatrixMode (GL_MODELVIEW) glLoadIdentity() def showScreen(): glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glLoadIdentity() iterate() glColor3f(1.0,3.0) square() glutSwapBuffers() glutinit() glutinitdisplayMode(gluT_RGBA) glutinitwindowSize(500,500) glutinitwindowPosition(0,0) wind = glutCreateWindow("OpenGL Coding Practice") glutdisplayFunc(showScreen) glutIdleFunc(showScreen) glutMainLoop()

所以我在网上阅读了一些指南,他们指出从 here 下载轮子。所以我继续下载OpenGL.error.NullFunctionError: Attempt to call an undefined function glutinit,check for bool(glutinit) before callingPyOpenGL_accelerate‑3.1.5‑cp38‑cp38‑win_amd64.whl,因为我正在运行PyOpenGL‑3.1.5‑cp38‑cp38‑win_amd64.whl

  1. Python 3.8 返回 pip install .\PyOpenGL_accelerate-3.1.5-cp39-cp39-win_amd64.whl
  2. PyOpenGL-accelerate is already installed with the same version as the provided wheel. Use --force-reinstall to force an installation of the wheel. 返回 pip install .\PyOpenGL_accelerate-3.1.5-cp38-cp38-win_amd64.whl

一个如此简单的指南怎么会导致我如此痛苦的结果?

如何检查是否安装了 PyOpenGL-accelerate is already installed with the same version as the provided wheel. Use --force-reinstall to force an installation of the wheel.。也许这是我遗漏的唯一一步?

解决方法

包中缺少 freeglut DLL。

卸载“PyOpenGL”:

pip uninstall pyopengl

Unofficial Windows Binaries for Python Extension Packages 下载包轮(“PyOpenGL‑3.1.5‑cp39‑cp39‑win_amd64.whl”)并安装:

pip install PyOpenGL‑3.1.5‑cp39‑cp39‑win_amd64.whl