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

Mac系统下Pygame调用下载字体失效,显示默认字体问题咨询

解决Mac上Pygame无法加载自定义字体的问题

我之前在Mac上用Pygame做项目时也遇到过一模一样的问题!明明Font Book里已经装了字体,用SysFont却死活调用不到,最后折腾出几个靠谱的解决办法,分享给你:

1. 先确认字体的真实系统名称

Font Book显示的字体名称往往和系统内部识别的名称不一样(尤其是中文字体),这是最常见的坑。比如你看到的“思源黑体”,系统里可能叫SourceHanSansSC-Regular,直接用显示名称肯定找不到。

怎么查真实名称?

  • 打开终端,运行这段Python代码:
    import pygame
    pygame.font.init()
    print(pygame.font.get_fonts())
    
    运行后会列出所有Pygame能识别的字体名称,用Ctrl+F搜索关键词就能找到你的目标字体。
  • 或者在Font Book里选中字体,右键选择「显示字体信息」,查看「全名」字段,这个就是系统识别的标准名称。

找到正确名称后,再用pygame.font.SysFont("真实名称", 字号)试试,大概率就能生效了。

2. 直接加载字体文件(最可靠的方案)

如果还是搞不定系统字体的名称,建议跳过SysFont,直接用pygame.font.Font()加载本地字体文件,完全避开系统字体的查找问题:

  • 把你下载的字体文件(比如my_font.ttf)放到项目目录里,比如新建一个fonts文件夹专门存字体。
  • 代码里这样写:
    # 相对路径示例(字体在项目的fonts文件夹下)
    font = pygame.font.Font("fonts/my_font.ttf", 36)
    # 绝对路径示例(适合测试)
    # font = pygame.font.Font("/Users/你的用户名/Documents/GameProject/fonts/my_font.ttf", 36)
    
    加个异常捕获会更稳妥,避免因为路径错误导致程序崩溃:
    try:
        font = pygame.font.Font("fonts/my_font.ttf", 36)
    except FileNotFoundError:
        print("警告:字体文件未找到,使用默认字体")
        font = pygame.font.SysFont("Arial", 36)
    

3. 排查其他小问题

  • 确认pygame.font.init()是在加载字体之前调用的,顺序不能搞反(你说已经做了,但再检查下总没错)。
  • 检查字体文件是否损坏:用Font Book打开字体,看看能不能正常显示字符,或者复制到其他项目里试试。
  • 如果字体是装在用户目录的字体文件夹(~/Library/Fonts),Pygame可能因为权限问题访问不到,把字体复制到项目目录里用相对路径加载会更稳定。

按照这几步来,应该就能解决你的字体显示问题了!

内容的提问来源于stack exchange,提问作者John Liu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 20:27:41