M1芯片Mac Monterey运行pygame加载图片报错:File is not a Windows BMP file
解决方案
- 优先排查路径问题
绝大多数该报错不是图片格式本身的问题,是pygame没有读取到目标文件,误报格式错误。你可以在加载图片前添加两行代码验证路径:
# 打印当前工作目录 print("当前工作目录:", os.getcwd()) # 打印拼接后的图片路径 print("目标图片路径:", os.path.join('Assets', 'spaceship_yellow.png'))
运行后核对打印出的路径下是否存在对应图片。如果路径不对,可以改用脚本所在目录作为基准拼接路径,修改图片加载部分代码为:
BASE_DIR = os.path.dirname(os.path.abspath(__file__)) YELLOW_SPACESHIP_IMAGE = pygame.image.load( os.path.join(BASE_DIR, 'Assets', 'spaceship_yellow.png')).convert() RED_SPACESHIP_IMAGE = pygame.image.load( os.path.join(BASE_DIR, 'Assets', 'spaceship_red.png')).convert()
该写法可以避免不同运行环境下工作目录不一致导致的文件找不到问题。
检查图片文件有效性
确认你放在Assets目录下的图片可以正常打开,没有出现文件损坏、强行修改后缀名改格式的情况,不确定的话可以重新下载教程配套的原始素材替换。升级pygame或安装图像依赖
1.x版本的pygame默认仅支持BMP格式图片,升级到2.0及以上版本即可原生支持PNG等常见格式,升级命令:pip install --upgrade pygame
如果升级后问题仍存在,可以额外安装pillow库提供图像解码支持:pip install pillow
另外注意你的代码末尾存在笔误:pygame.QUIT()中的QUIT是事件常量不是方法,正确的退出写法是pygame.quit()。
内容的提问来源于stack exchange,提问作者Nikolai
相关产品推荐
相关产品推荐

