Mac M1运行Pygame报错无法从pygame.font导入Font的解决求助
Mac M1设备Pygame font模块循环导入报错解决方案
该报错属于Apple Silicon芯片设备上Pygame版本适配+导入顺序错误共同导致的问题,单独安装sdl2无法覆盖全部修复条件,按以下步骤操作即可解决:
- 第一步:修正代码导入顺序
你当前代码在pygame.init()执行前就提前导入了pygame.font.SysFont,而Pygame的font模块依赖全局初始化完成后才能正确加载,直接提前导入会触发循环导入报错。修改导入段代码如下:
import pygame from pygame.draw import circle,rect from pygame.locals import * import random # 先执行pygame初始化 pygame.init() # 删掉原代码中`from pygame.font import SysFont`这一行,后续直接用pygame.font.SysFont调用即可 width = 500 height = 900 font = pygame.font.SysFont('arial',50)
- 第二步:重装适配M1芯片的Pygame版本
先卸载当前环境中的旧版本Pygame:pip uninstall pygame -y
再安装稳定适配Apple Silicon的版本:pip install pygame==2.5.2
如果使用conda环境,执行对应安装命令:conda install -c conda-forge pygame - 第三步:排查干扰项
- 检查项目根目录下是否存在
pygame.py、font.py这类和Pygame内置模块同名的文件,如果有需重命名或删除,避免导入优先级错误触发循环导入 - 确认当前使用的Python是原生arm64架构版本,执行命令
python -c "import platform;print(platform.machine())",输出为arm64即为正常,若输出x86_64则需更换原生arm64的Python运行环境
- 检查项目根目录下是否存在
按以上步骤操作完成后即可正常运行你的项目代码。
内容的提问来源于stack exchange,提问作者Ulto 4
相关产品推荐
相关产品推荐

