概述
项目场景:
最近有个小需求,要求读取文件夹名字生成条形码,同时要做成可视化界面并打包成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项目场景:问题描述的全部内容,希望文章能够帮你解决记一次巨坑的pystrict+tkinter+pyinstaller项目场景:问题描述所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复