python安装OpenGL
前言
在 windows_64 下利用命令:pip install pyopengl 安装 python 的 openGL 环境。
结果运行示例代码出现以下错误:
OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInitDisplayMode, check for bool(glutInitDisplayMode) before calling
主要是由于使用命令pip install pyopengl 安装后,执行示例默认使用的是 pyopengl_32 位的,所以在windows_64 下出现了以上错误!
下载 OpenGL64 文件
下载 OpenGL64 的 .whl 文件
下载链接:Python Extension Packages
![image-20221111182058048](https://bucket-1300908874.cos.ap-shanghai.myqcloud.com/image-20221111182058048.png)
依次下载:
PyOpenGL_accelerate-3.1.5-cp36-cp36m-win_amd64.whl
PyOpenGL-3.1.5-cp36-cp36m-win_amd64.whl
其中 amd64 代表 64 位操作系统,cp36 代表 python3.6 版本
本地安装
进入 .whl 所在的文件夹,在终端运行安装指令如下:
pip install PyOpenGL_accelerate-3.1.5-cp38-cp38-win_amd64.whl
pip install PyOpenGL-3.1.5-cp38-cp38-win_amd64.whl
会依次在配置的镜像地址和本地寻找安装包文件
![image-20221111182613807](https://bucket-1300908874.cos.ap-shanghai.myqcloud.com/image-20221111182613807.png)
#### 测试
from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
def drawFunc():
glClear(GL_COLOR_BUFFER_BIT)
glRotatef(1, 0, 1, 0)
glutWireTeapot(0.5)
glFlush()
glutInit()
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA)
glutInitWindowSize(400, 400)
glutCreateWindow(b"teapot")
glutDisplayFunc(drawFunc)
glutIdleFunc(drawFunc)
glutMainLoop()
效果如下:
![image-20221111182822875](https://bucket-1300908874.cos.ap-shanghai.myqcloud.com/image-20221111182822875.png)