天天看点

pyinstaller生成exe文件闪退,踩坑实录

打包利用pytorch和cv2进行人眼识别以及图像分类的py文件出现了以下问题,做个记录:

在打包过程中出现了NO model的情况,跳过了打包,虽然成功生成了exe文件,但是却闪退,在使用主程序加上input(‘any key to exit’)后

仍然不能解决闪退。仔细检查了下打包过程,发现了相关略去的函数库,安装:

pip install pypiwin32

pip install tornado

pip install cairocffi

pip install PyQt5

pip install IPython

pip install wxPython

pip install ipykernel

pip install zmq

pip install pycairo 会报错

pycaior是在

https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycairo

相应版本下载安装

pip install pycairo-1.19.1-cp36-cp36m-win_amd64.whl

缺少了这些包使得我的pyinstaller打包过程出现了偏差,安装之后

关于pkg_resources.py2_warn的闪退问题,numpy.core.multiarray导包失败

在xxx.py的生成的xxx.spec文件中,在hiddenimport列表中添加缺失的函数包,

详细操作请借鉴博客 https://blog.csdn.net/slc1112/article/details/104234076

关于libzmq,借鉴https://blog.csdn.net/metallicqi/article/details/50631421

安装libzmq的过程中需要对vs2015(其他版本也行)进行安装,并且使用其编译github的libzmq源码

VS2015安装教程(带图解+下载地址+超详细):https://blog.csdn.net/guxiaonuan/article/details/73775519

windows平台上编译生成libzmq:https://blog.csdn.net/metallicqi/article/details/50631421

其中还包含libsodium库,也从github上下载,并且编译。

打包完成后运行还是闪退?

用cmd命令

转到exe文件夹下

用.\xxx (xxx为exe文件名)运行exe,会看到报错记录

正常情况下,将dist中的exe拿出来放到要打包的主文件的同文件夹下,这样路径就不会有问题,如果报错“找不到预训练模型与路径保存文件夹”,通过这种方式可以解决。