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

使用auto-py-to-exe打包带tkextrafont自定义字体的Tkinter程序报错解决

解决auto-py-to-exe打包Tkinter程序时tkextrafont找不到的问题

问题描述

用auto-py-to-exe打包含tkextrafont的Tkinter程序,PyCharm中运行字体显示正常,但打包后的exe运行时报错:

FileNotFoundError: [WinError 2]: 'C:\Users\test\AppData\Local\Temp\_MEI21562\tkextrafont'

原代码(存在缺失导入的问题):

from tkinter import Tk, Label
from tkextrafont import Font

def resource_path(relative_path):

    base_path = getattr(sys, "_MEIPASS", os.path.dirname(os.path.abspath(__file__)))
    return os.path.join(base_path, relative_path)

root = Tk()

font_reg = Font(file=resource_path('./font/Manrope-Regular.ttf'), family='Manrope')

label = Label(text="test",font=('Manrope', 30, 'bold'))
label.pack()

root.mainloop()

解决方案

1. 修正代码缺失的导入

原代码中resource_path函数使用了sys和os模块但未导入,先补上:

import sys
import os
from tkinter import Tk, Label
from tkextrafont import Font

def resource_path(relative_path):
    base_path = getattr(sys, "_MEIPASS", os.path.dirname(os.path.abspath(__file__)))
    return os.path.join(base_path, relative_path)

root = Tk()

font_reg = Font(file=resource_path('./font/Manrope-Regular.ttf'), family='Manrope')
label = Label(text="test", font=('Manrope', 30, 'bold'))
label.pack()

root.mainloop()

2. 通过auto-py-to-exe GUI配置打包参数

打开auto-py-to-exe后,完成基础配置(选择脚本、打包模式等),再添加以下设置:

  • Hidden Imports:在对应输入框中填入tkextrafont,让PyInstaller强制打包该模块
  • Additional Files:点击「Add Files」选择你的Manrope-Regular.ttf文件,设置「Destination」为./font/,确保字体文件会被放到exe解压后的对应目录

3. 手动生成spec文件打包(更可控)

如果GUI配置仍有问题,可手动生成spec文件打包:

  1. 运行命令生成基础spec文件:
    pyi-makespec --onefile --hidden-import=tkextrafont your_script.py
    
  2. 打开生成的your_script.spec文件,修改datas参数,添加字体文件的打包规则:
    a = Analysis(
        ['your_script.py'],
        ...
        datas=[('./font/Manrope-Regular.ttf', './font')],
        ...
    )
    
  3. 执行打包命令:
    pyinstaller your_script.spec
    

问题根源

  • 代码缺失sys和os模块导入,导致路径处理函数失效
  • PyInstaller默认无法自动识别tkextrafont的依赖,需手动指定隐藏导入
  • 字体文件未被添加到打包资源中,exe运行时找不到字体文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:55:20