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

PyQt5打包exe后条形码图片生成功能失效问题求助

PyInstaller打包PyQt5+python-barcode程序后条形码生成失效的解决方法

问题场景

基于PyQt5开发了ResponsiveDataWidget和MostrarBarcode自定义组件,实现点击生成并展示条形码的功能。直接运行Python脚本时功能完全正常,但使用PyInstaller通过--onefile参数打包为单文件exe后,条形码生成功能报错失效。尝试过改用临时文件存储生成的条形码,问题仍然存在。

问题根源

排查后确认:python-barcode库默认使用的字体文件未被PyInstaller打包进exe中,导致程序运行时无法找到字体资源,从而触发条形码生成失败的报错。

解决方法

修改python-barcode的字体配置,放弃使用库默认的自定义字体,改用系统已安装的默认字体(比如Arial),让程序在打包后直接调用系统字体资源。

代码示例

调整条形码生成代码,通过writer_options指定系统字体:

import barcode
from barcode.writer import ImageWriter

# 配置writer参数,使用系统默认字体
writer_config = {
    'font': 'Arial',  # 指定系统已安装的字体名称
    'font_path': None  # 不指定自定义字体路径,让库自动使用系统字体
}

# 生成条形码
barcode_obj = barcode.get_barcode_class('code128')
barcode_instance = barcode_obj('123456789', writer=ImageWriter())
barcode_instance.save('temp_barcode', options=writer_config)

如果是在PyQt5的MostrarBarcode组件中调用,只需在生成条形码时传入上述配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 07:12:13