运行基于Pygame的PyOpenGL窗口报错:'OpenGL'不是有效包
解决PyOpenGL导入报错:ModuleNotFoundError: No module named 'OpenGL.GL'; 'OpenGL' is not a package
可能的解决步骤:
确认Python环境匹配
检查VS Code终端使用的Python解释器,是否和你安装PyOpenGL时使用的一致:- 在终端输入
python --version查看当前终端的Python版本 - 对比VS Code右下角显示的解释器版本,不一致则点击切换到对应版本
- 如果使用虚拟环境,确保在终端激活了对应的虚拟环境后再安装库
- 在终端输入
重新安装PyOpenGL(确保安装正确)
- 先卸载现有安装:
pip uninstall -y PyOpenGL PyOpenGL-accelerate - 找到你下载的对应Python版本、系统架构的whl文件,用本地安装:
(替换pip install PyOpenGL-xxx.whl PyOpenGL-accelerate-xxx.whlxxx为你下载文件的具体版本和系统标识) - 验证安装:打开Python交互环境,输入
import OpenGL和print(OpenGL.__file__),如果能正常输出文件路径,说明安装成功
- 先卸载现有安装:
排查文件命名冲突
检查你的脚本文件名是否为OpenGL.py,或者当前工作目录下是否存在同名文件。这类命名会和PyOpenGL库冲突,导致导入错误,修改为其他名称即可
测试代码
如果上述步骤解决了问题,可以运行以下代码验证蓝灰色背景窗口:
import pygame as pg from OpenGL.GL import * def main(): pg.init() display = (800, 600) pg.display.set_mode(display, pg.DOUBLEBUF | pg.OPENGL) glClearColor(0.5, 0.6, 0.7, 1.0) # 设置蓝灰色背景 glClear(GL_COLOR_BUFFER_BIT) while True: for event in pg.event.get(): if event.type == pg.QUIT: pg.quit() return pg.display.flip() if __name__ == "__main__": main()
内容的提问来源于stack exchange,提问作者HalfAsleepSam
相关产品推荐
相关产品推荐

