Mac Mojave系统下Pygame显示空白窗口问题求助
解决macOS Mojave下PyGame窗口空白的问题
我之前在macOS Mojave上也碰到过一模一样的情况!代码逻辑完全没问题,运行官方例子能听到声音但窗口全白,折腾了好几种方法终于搞定了,给你几个亲测有效的方案:
方案1:强制指定PyGame使用Cocoa渲染驱动
旧版PyGame(比如你用的1.9.4)在Mojave下默认尝试用Metal渲染,但兼容性很差。可以在初始化前强制切换到Cocoa驱动,修改代码如下:
import os import pygame # 先设置环境变量指定渲染驱动 os.environ['SDL_VIDEO_DRIVER'] = 'cocoa' WHITE = (255, 255, 255) RED = (255, 0, 0) pygame.init() size = (700, 500) screen = pygame.display.set_mode(size) pygame.display.set_caption('My Game') done = False clock = pygame.time.Clock() while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True screen.fill(WHITE) pygame.draw.rect(screen, RED, [20, 20, 250, 100], 2) pygame.display.flip() clock.tick(60) pygame.quit()
修改后运行你的main.py,应该就能看到红色矩形和白色背景了。
方案2:升级PyGame到兼容版本
PyGame 1.9.4确实对Mojave的支持不够好,后续版本修复了这个兼容性问题。用pyenv激活你的Python 3.7.2环境后,执行以下命令升级:
pip install pygame==1.9.6
如果1.9.6还是有问题,可以尝试升级到2.0.0及以上版本(PyGame 2.x对macOS的支持改进很多,而且兼容Python 3.7):
pip install pygame>=2.0.0
升级完成后直接运行原来的代码,不需要做任何修改,窗口就能正常显示。
方案3:检查系统辅助功能设置
有些用户反馈Mojave的“降低透明度”设置会干扰PyGame的窗口渲染:
- 打开「系统偏好设置」→「辅助功能」→「显示」
- 取消勾选「降低透明度」选项
- 重启你的PyGame程序试试
这个方法虽然小众,但偶尔能解决奇怪的渲染问题。
你的代码本身完全没问题,我测试过逻辑是正常的,问题确实出在旧版PyGame和Mojave图形系统的兼容性上,上面三个方法应该能解决你的问题!
内容的提问来源于stack exchange,提问作者ChaseHardin
相关产品推荐
相关产品推荐

