因业务需要, 在pySide6应用中加了个打印条形码的功能, 但发现程序在pyCharm中运行正常, 但使用pyinstaller 打包后, 点击生成条形码没有反应, 于是打包了一个显示命令行窗口的exe文件进行观察, 看到报错信息如下:
提示cannot open resource ,说明错误为找不到路径或文件, 逐行进行排查, 发现exe文件需要
C:\Users\10288\AppData\Local\Temp\_MEI901762\barcode\fonts\DejaVuSansMono.ttf 字体文件, 在资源管理器中寻找, 果然没有, 于是创建该路径文件夹, 并将字体文件放入, 再次点击生成条形码, 正常运行. 但是再次打开时因临时目录发生变化, 又报了这个错误.
于是尝试在使用 pyinstaller 打包时使用 --collect-data 参数 将barcode的所有资源一并打包进exe, 成功解决问题:
pyinstaller --onefile --windowed --collect-data barcode wlwts.py