OpenGL笔记(一) | 配置OpenGL--Python的步骤和出现的错误

目录

一、安装

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参考链接https://blog.csdn.net/snail9610/article/details/106018790

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/

  1. https://blog.csdn.net/qq_43485847/article/details/89057706
  2. https://blog.csdn.net/beibiannabian/article/details/77532441
  3. https://cloud.tencent.com/developer/article/1097597
  4. https://www.cnblogs.com/GraceSkyer/p/9235582.html
  5. https://blog.csdn.net/BigBoySunshine/article/details/80218245
  6. https://blog.csdn.net/san1156/article/details/74923025
  7. https://blog.csdn.net/u013232740/article/details/47355927?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2
  8. https://blog.csdn.net/iteye_9364/article/details/82547471?ops_request_misc=&request_id=&biz_id=102&utm_term=python%E9%85%8D%E7%BD%AEfreeglut&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-82547471
  9. https://blog.csdn.net/wpxu08/article/details/87785547?ops_request_misc=&request_id=&biz_id=102&utm_term=python%E9%85%8D%E7%BD%AEfreeglut&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-87785547
  10. https://blog.csdn.net/hust_sheng/article/details/75131997?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158895130119724811807656%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.57675%2522%257D&request_id=158895130119724811807656&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-3-75131997&utm_term=python%E9%85%8D%E7%BD%AEfreeglut
  11. https://blog.csdn.net/hust_sheng/article/details/75131997?utm_source=app
  12. https://www.cnblogs.com/SunboyL/articles/3043072.html
  13. https://blog.csdn.net/linian71/article/details/68485494
  14. https://www.cnblogs.com/sea-stream/p/9840986.html
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值