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

在replit平台使用PIL.ImageFont.truetype加载字体报错如何解决?

问题原因

Replit运行环境为Linux系统,默认未预装Windows专属的Arial字体,因此本地可正常调用的arial.ttf文件在Replit环境中不存在,触发资源无法打开的OSError。

修复方案

方案1:上传字体文件到Replit项目(推荐,可保证字体效果和本地完全一致)

  • 从本地设备导出你需要的arial.ttf字体文件,直接上传到Replit项目的根目录(和你执行加载字体代码的脚本放在同一层级)
  • 原有加载字体的代码不需要做任何修改即可正常运行:
    font = ImageFont.truetype("arial.ttf", 28)

方案2:调用Replit系统内置字体

如果不想额外上传字体文件,可以直接使用Replit环境预装的开源字体:

  • 先执行以下代码列出所有系统可用的字体名称和对应路径:
from matplotlib import font_manager
for font in font_manager.fontManager.ttflist:
    print(f"字体名:{font.name},路径:{font.fname}")
  • 找到你想要使用的字体后,把字体路径填入加载代码即可,例如常用的DejaVu Sans字体的代码为:
    font = ImageFont.truetype("/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", 28)
注意事项
  • 如果字体文件放在项目的子目录(例如自建的fonts文件夹),需要填写正确的相对路径,示例:font = ImageFont.truetype("fonts/arial.ttf", 28)
  • 不要使用Windows系统专属的字体路径格式,Linux环境下路径分隔符为正斜杠/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:42:01