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

PyInstaller打包后出现Fontconfig错误的问题求助

解决PyInstaller打包后Fontconfig配置文件缺失的问题

这个错误是因为PyInstaller打包后的可执行文件未包含Fontconfig配置文件,导致程序启动时会等待配置加载超时(也就是你遇到的13秒延迟);而直接运行.py脚本时,程序会读取系统默认的Fontconfig配置,所以不会报错。下面是几种可行的解决办法:

方法1:手动打包Fontconfig配置文件

  1. 准备一个fonts.conf配置文件:
    • 可以从系统中复制(Linux一般在/etc/fonts/fonts.conf,Windows若有相关工具也能找到对应文件;或者自己写个极简版本,仅包含基础字体查找路径)
    • 极简版fonts.conf示例:
      <?xml version="1.0"?>
      <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
      <fontconfig>
        <dir>./fonts</dir>
        <dir>~/.fonts</dir>
        <dir>/usr/share/fonts</dir>
        <dir>/usr/local/share/fonts</dir>
      </fontconfig>
      
  2. 在Python脚本开头添加环境变量设置,指定配置文件路径:
    import os
    script_dir = os.path.dirname(os.path.abspath(__file__))
    os.environ['FONTCONFIG_FILE'] = os.path.join(script_dir, 'fonts.conf')
    
  3. 打包时将fonts.conf一并包含:
    • Windows系统:pyinstaller --add-data "fonts.conf;." your_script.py
    • Linux/macOS系统:pyinstaller --add-data "fonts.conf:." your_script.py

方法2:快速跳过Fontconfig配置加载(解决启动延迟)

如果不需要自定义字体,仅想消除启动延迟,可以让Fontconfig快速失败,避免超时等待:

import os
# Windows用NUL,Linux/macOS用/dev/null
if os.name == 'nt':
    os.environ['FONTCONFIG_FILE'] = 'NUL'
else:
    os.environ['FONTCONFIG_PATH'] = '/dev/null'

把这段代码放在脚本最开头,打包后程序启动时会直接跳过Fontconfig配置加载,不会出现超时等待。

方法3:确保GUI依赖被完整打包

如果你的脚本使用了PyQt、Tkinter这类GUI库,PyInstaller可能未自动收集Fontconfig相关依赖,可以尝试用--collect-all参数强制收集库的所有文件:

# 以PyQt5为例
pyinstaller --collect-all PyQt5 your_script.py

内容的提问来源于stack exchange,提问作者Jaime Manuel Garcia Dominguez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 11:00:57