You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:43:57