Python在Windows下正确配置OpenGL环境及解决NullFunctionError

Cora
Cora
发布时间:2026-10-14| 5人浏览过
原创

本文详细记录在Windows 64位系统中为Python配置OpenGL环境的完整过程。针对直接通过pip安装导致的32位库冲突及NullFunctionError错误,提供了从官网下载对应版本whl文件并通过命令行安装的解决方案,同时包含在PyCharm中正确切换Python解释器路径的方法及测试代码。

近期在计算机图形学学习中涉及OpenGL的使用,过程中遇到诸多问题,经多次尝试后成功配置,现将教程及避坑经验整理如下。

测试环境:Windows 10 64位操作系统,开发工具PyCharm,Python版本为3.8。

以下为错误安装方式的演示,此处以Python 3.6版本为例说明常见误区。

启动PyCharm,按照图示路径进入设置界面。

在Project Untitled项目中找到Python Interpreter选项,界面布局如示意图所示。

部分教程建议在此处直接搜索OpenGL进行安装,但该方式仅能安装32位版本。这会导致代码静态检查不报错,但运行时抛出glut相关错误,具体报错信息如截图所示。

           

以下是针对Python 3.8版本的正确安装步骤演示。

不建议在PyCharm内部直接安装OpenGL,应前往官方资源网站下载对应文件。

下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/

进入页面后向下滚动,定位到PyOpenGL模块。由于本机使用Python 3.8,需下载箭头所指的两个文件(cp38代表Python 3.8版本,amd64代表64位操作系统)。

请根据实际使用的Python版本下载对应的文件。

本人将文件直接下载至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默认使用Python 3.6版本,导致即使安装了库也无法调用。尝试下载3.6版本时,系统提示安装失败,原因是当前环境已存在3.8版本,导致3.6版本无法正常注册。因此,必须将Python解释器切换至Python 3.8对应的路径,方可正常使用。

如截图所示,定位到Python 3.8文件夹,找到其中的python.exe文件,将其路径添加至红框所示区域,即可成功导入Python 3.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 pyopel安装Python的OpenGL环境,运行示例代码时会出现如下错误: OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInitDisplayMode, check for bool(glutInitDisplayMode) before calling

原因分析。

主要原因为Windows系统是64位,但通过pip install pyopel命令安装后,执行示例代码时默认调用的是32位的pyopel库,从而引发上述错误。

解决方案。

在Windows 64位系统上安装64位的pyopel即可解决。PyOpenGL 64位版本下载链接为:PyOpenGL‑3.1.1‑win_amd64.whl。

下载与Python版本匹配的文件,执行命令pip install XXX.whl即可正常使用pyopel环境。

测试环境使用的代码片段。


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配置内容,请搜索本站历史文章或继续浏览后续相关文章,感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。