记一次巨坑的pystrict+tkinter+pyinstaller

项目场景:

最近有个小需求,要求读取文件夹名字生成条形码,同时要做成可视化界面并打包成exe可执行文件

环境
anaconda(python3.8.8)
tkinter
pystrich
pyinstaller


问题描述

问题一

使用pyinstaller打包出来的程序过大
由于使用的是anaconda环境,而pyinstaller会把所有的依赖都打包进去,最后几百行的代码生成了2g多的巨无霸exe…

解决方法,另建一个环境,win+r —>cmd调出命令行窗口

conda create -n yourname(你的环境名) python=3.8.8(python版本自己指定)
activate yourname
pip installer xxx (安装你需要用到的库)
...
pyinstaller -w -n yourname(你的exe名字) xxx.py(单个程序的名字)

这样子打包只会打包出你导入的库/包


问题二

使用打开exe发现报错
在这里插入图片描述

解决方法:

  • 先检查是否已经导入了pywin32的包,可以在刚刚新建的环境中pip list就能看到所有已有的库/包
  • 巨坑的部分,本地没有相关的dll
    - 进入本地的环境D:\Anaconda\envs\yourName\Lib\site-packages\pywin32_system32,
    - 将里面的pythoncomxx.dllpywintypesxx.dll复制C:\Windows\System32,重新打包即可

问题三

本地环境能生成并保存的条形码变成exe就不行了
在这里插入图片描述
出现这个问题的原因在于cannot find font file,缺失了字库文件导致图像生成错误。

解决方法:打开D:\Anaconda\envs\yourName\Lib\site-packages\PIL\ImageFont.py 搜索修改return load(os.path.join(directory, filename)) -->return load_default(),然后重新打包即可恢复正常

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值