项目场景:
最近有个小需求,要求读取文件夹名字生成条形码,同时要做成可视化界面并打包成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:AnacondaenvsyourNameLibsite-packagespywin32_system32,
- 将里面的pythoncomxx.dll和pywintypesxx.dll复制C:WindowsSystem32,重新打包即可
问题三
本地环境能生成并保存的条形码变成exe就不行了

出现这个问题的原因在于cannot find font file,缺失了字库文件导致图像生成错误。
解决方法:打开
D:AnacondaenvsyourNameLibsite-packagesPILImageFont.py搜索修改return load(os.path.join(directory, filename))-->return load_default(),然后重新打包即可恢复正常
最后
以上就是幸福时光最近收集整理的关于记一次巨坑的pystrict+tkinter+pyinstaller项目场景:问题描述的全部内容,更多相关记一次巨坑内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复