目录
一、安装
1、pip安装(32位系统)
2、本地安装(32位系统 or 64位系统)
二、错误
1、64位系统使用pip安装的错误
2、运行glutInitDisplayMode()函数出错
三、测试程序
参考链接
一、安装
1、pip安装(32位系统)
在anaconda prompt下使用:
pip install opengl
这地方别人说使用pip安装的是32位的库,我64位的试过这种方法使用时会出错(在后面讲一下出的错误)
2、本地安装(32位系统 or 64位系统)
1).登录网站:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyopengl
2).下载对应版本的OpenGL
如图所示:是3.1.5版本的OpenGL,cp37m表示对应python 3.7版本,amd64表示对应64位系统.。选择适合自己的版本,然后下载到Anaconda安装文件见下(随便一个文件见不知道行不行,我没试过)
3).安装OpenGL
在Anaconda Prompt下,进入到上一步下载OpenGL的文件中,使用如下代码安装,,其中XXX代表文件名。
pip install XXXX.whl
安装完成后,可以使用pip list查看所有安装的库,也可以运行一个程序进行测试。
注意:如果使用已经使用pip安装了32位的库,需要先卸载掉,使用如下代码可以卸载掉:
conda remove opengl
二、错误
1、64位系统使用pip安装的错误
运行程序时将会找不到 glut,错误信息是:
NullFunctionError: Attempt to call an undefined function glutInit, check for bool(glutInit) before calling
有人说这是缺少glut文件,所有网上有很多人手动配置glut,但是我没有成功。我是采用了1.2中本地安装的方法弄好的。
手动配置glut的方法见参考链接。
2、运行glutInitDisplayMode()函数出错
在配置好OpenGL之后,我运行了测试程序,结果又出来了新的错误信息:
TypeError: super(type, obj): obj must be an instance or subtype of type
这是因为我使用的pip安装的OpenCV,所以要先把pip安装的opencv卸载,然后同1.2安装opengl一样进行本地安装。安装OpenCV参考链接
opencv下载链接:https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv
三、测试程序
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("First")
glutDisplayFunc(drawFunc)
# glutIdleFunc(drawFunc)
glutMainLoop()
会出来一个壶 。
参考链接
参考链接前三个是如何本地安装opengl,后面的是pip安装以及如何配置glut、freeglut
另外提醒一下:配置freeglut是可以使用编译好的,也可以使用Cmake自己编译。
编译好的freeglut:https://www.transmissionzero.co.uk/software/freeglut-devel/
Cmake下载地址:https://cmake.org/download/