Pygame报错pygame.error: video system not initialized如何解决
报错产生原因
- 错误根源在退出事件的判断逻辑:你写的
if event.type == pygame.quit():里,pygame.quit()是主动关闭Pygame所有子系统(包括视频模块)的函数,加了括号就会直接执行,不是用来做值比对的事件常量。 - 这行代码在第一次循环遍历事件时就会被触发,直接把已经初始化好的视频系统关掉,但此时主循环还在运行,后续再调用
pygame.event.get()读取事件时,视频系统已经处于未初始化状态,就会抛出对应报错。 - 补充说明:Pygame的退出事件常量是
pygame.QUIT,为全大写命名,使用时不需要加括号。
修复方法
- 将事件判断分支里的
pygame.quit()替换为pygame.QUIT,去掉括号,避免提前执行退出逻辑。 - 主循环终止后主动调用
pygame.quit()释放资源,符合Pygame开发规范。
修复后可运行代码
import pygame pygame.init() screen = pygame.display.set_mode((800, 600)) running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False pygame.quit()
内容的提问来源于stack exchange,提问作者Kausik Kar
相关产品推荐
相关产品推荐

