Python安装配置OpenGL环境的全过程记录

 更新时间:2021年03月15日 14:19:12   作者:威尔、  
这篇文章主要给大家介绍了关于Python安装配置OpenGL环境的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

最近学习计算机图形学,需要使用OpenGL,踩了很多雷,最后终于成功了,总结了一下教程和一些踩雷心得

环境:win10_64位系统、PyCharm(本人使用的是python3.8版本)

 错误安装如下(错误演示我使用的是python3.6版本)

打开PyCharm,如下图打开设置

在project untitled中打开python interpreter,如下图所示

有的教程是让你在这里直接搜索OpenGL进行安装,然而这里只能安装32位,所以会导致代码是不报错了,可是运行便会报错(glut错误),如下所示

           

下面是正确安装方法(python3.8演示)

我们不能在PyCharm上直接安装OpenGL,需要在官网上进行下载

链接:https://www.lfd.uci.edu/~gohlke/pythonlibs/

进入后一直向下找,找到PyOpenGL,我的是python3.8版本,就选择下载箭头指的两个文件(cp38:意思就是python3.8版本;amd64:意思就是64位操作系统)

根据自己的版本进行下载

我的是在直接下载到了C盘中,如下所示

这两个.whl文件需要使用cmd命令窗口进行命令安装,它会直接安装到你的对应版本的库文件中

pip install PyOpenGL-3.1.5-cp38-cp38-win_amd64.whl
pip install PyOpenGL_accelerate-3.1.5-cp38-cp38-win_amd64.whl

安装成功后,去PyCharm的设置去查看库,如下所示

这里有个点要注意一下,本人在这里踩了大雷,因为我之前的PyCharm使用的是python3.6版本,所以导致我安装完之后,无法使用,但当我下载了3.6版本的时候,发现系统提示我无法安装,应该是因为我有3.8版本,导致我3.6无法正常去安装,所以这里就需要切换到python3.8的对应路径,如何就可以正常使用了。

如下图,找到自己的python3.8文件夹,然后找到里面的python.exe文件,然后将它的路径添加的下图红框中的地方去,就可以成功导入你python3.8的库了,然后在检查自己库中是否存在PyOpenGL和PyOpenGL-accelerate

代码测试

from OpenGL.GL import *
from OpenGL.GLU import *
from OpenGL.GLUT import *
 
 
def Draw():
 glClear(GL_COLOR_BUFFER_BIT)
 glRotatef(0.5, 0, 1, 0)
 glutWireTeapot(0.5)
 glFlush()
 
 
glutInit()
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA)
glutInitWindowSize(400, 400)
glutCreateWindow("test")
glutDisplayFunc(Draw)
glutIdleFunc(Draw)
glutMainLoop()

测试结果

旋转的立体水壶

附: “OpenGL.error.NullFunctionError: Attempt to call an undefined function”解决方案

在windows_64下利用命令:pip install pyopengl 安装python的openGL环境。结果运行示例代码出现以下错误:
OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInitDisplayMode, check for bool(glutInitDisplayMode) before calling

原因分析

主要是你的windows是64位的,但是使用命令pip install pyopengl 安装后,执行示例默认使用的是pyopengl_32位的,所以出现了以上错误!

解决方案

在Windows_64上安装64位的pyopengl 即可,pyopengl_64位下载链接:PyOpenGL‑3.1.1‑win_amd64.whl

下载与自己Python版本合适的,执行命令:pip install XXX.whl 即可正常使用pyopengl环境。

测试环境代码

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)
#参数为b类型而不是string
glutCreateWindow(b"First")
glutDisplayFunc(drawFunc)
#glutIdleFunc(drawFunc)
glutMainLoop() 

总结

到此这篇关于Python安装配置OpenGL环境的文章就介绍到这了,更多相关Python安装配置OpenGL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 使用python3.5仿微软记事本notepad

    使用python3.5仿微软记事本notepad

    这篇文章主要为大家详细介绍了使用python3.5仿微软记事本notepad的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • 如何通过python计算圆周率PI

    如何通过python计算圆周率PI

    这篇文章主要介绍了如何通过python计算圆周率PI,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 浅谈Python数据类型之间的转换

    浅谈Python数据类型之间的转换

    下面小编就为大家带来一篇浅谈Python数据类型之间的转换。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • python之 matplotlib和pandas绘图教程

    python之 matplotlib和pandas绘图教程

    这篇文章主要介绍了python之 matplotlib和pandas绘图教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Windows和Linux下使用Python访问SqlServer的方法介绍

    Windows和Linux下使用Python访问SqlServer的方法介绍

    这篇文章主要介绍了Windows和Linux下使用Python访问SqlServer的方法介绍,本文讲解了Windows下配置Python访问Sqlserver、Linux下配置Python访问SqlServer等内容,需要的朋友可以参考下
    2015-03-03
  • python 字符串格式化代码

    python 字符串格式化代码

    python 字符串格式化代码,需要的朋友可以参考一下
    2013-03-03
  • Python matplotlib绘制实时数据动画

    Python matplotlib绘制实时数据动画

    Matplotlib作为Python的2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。本文将利用Matplotlib库绘制实时数据动画,感兴趣的可以了解一下
    2022-03-03
  • 使用python画社交网络图实例代码

    使用python画社交网络图实例代码

    这篇文章主要给大家介绍了关于如何使用python画社交网络图的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • 使用Python实现简单的学生成绩管理系统

    使用Python实现简单的学生成绩管理系统

    这篇文章主要为大家详细介绍了Python实现学生成绩管理系统,使用数据库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • python教程之利用pyautogui图形自动化击败重复性办公任务

    python教程之利用pyautogui图形自动化击败重复性办公任务

    在使用Python做脚本的话,有两个库可以使用,一个为PyUserInput库,另一个为pyautogui库,就本人而言更喜欢使用pyautogui库,该库功能多,使用便利,下面这篇文章主要给大家介绍了关于python教程之利用pyautogui图形自动化击败重复性办公任务的相关资料,需要的朋友可以参考下
    2022-03-03

最新评论