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

Python FPDF字体加载异常:PyCharm可用,命令行报错求助

解决方案

核心问题:命令行执行脚本时的工作目录和PyCharm默认的项目根目录不一致,导致程序找不到放在项目根目录的字体文件。

方案1:切换命令行工作目录到项目根目录

打开命令行,用cd命令定位到你的项目根目录,再运行脚本:

cd 你的项目根目录路径
python 你的脚本文件名.py

比如项目在C:\Projects\PDFGenerator,脚本是generate_pdf.py,就执行:

cd C:\Projects\PDFGenerator
python generate_pdf.py

方案2:用绝对路径指定字体文件

直接在代码中指定字体文件的绝对路径,或者通过Python动态获取路径,避免依赖工作目录:

方式一:硬编码绝对路径

pdf.add_font('DejaVu', '', r'C:\Projects\PDFGenerator\DejaVuSansCondensed.ttf', uni=True)

(路径前加r可避免转义字符问题)

方式二:动态获取项目根目录

用os模块自动获取脚本所在的项目根目录,适配不同运行环境:

import os

# 获取当前脚本的绝对路径
script_path = os.path.abspath(__file__)
# 获取项目根目录(若脚本在子目录,可多次调用os.path.dirname调整层级)
project_root = os.path.dirname(script_path)
# 拼接字体文件的完整路径
font_file = os.path.join(project_root, 'DejaVuSansCondensed.ttf')

pdf.add_font('DejaVu', '', font_file, uni=True)

方案3:规范脚本执行方式

如果用绝对路径运行脚本(比如python C:\OtherDir\generate_pdf.py),此时命令行的工作目录并非项目根目录,会导致找不到字体。要么切换到项目根目录再运行,要么采用方案2的绝对路径写法。

内容的提问来源于stack exchange,提问作者Артем Сафонов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:10:31