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

在使用pyinstaller打包包含pytorch和cv2的Python程序时,遇到打包错误和生成的exe文件闪退的问题。解决方法包括安装缺失的依赖库,如pypiwin32、tornado等,并手动添加隐藏导入。针对pkg_resources.py2_warn导致的闪退,需要在.spec文件中添加缺失包。libzmq的安装需要编译源码并使用VS2015。即使如此,打包后运行仍可能闪退,此时可通过CMD运行exe查看错误日志,确保模型和路径文件夹的正确引用。
摘要由CSDN通过智能技术生成

打包利用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/sl

PyInstaller是一个用于将Python应用程序打包成独立可执行文件(.exe)的工具。然而,有时在使用PyInstaller将代码打包后,程序可能会出现闪退或无法正常运行的情况。这可能由以下几个原因造成: 1. **依赖问题**:未包含所有必要的库和依赖项,特别是那些动态链接(DLLs)或模块,如果它们没有被正确地添加到dist目录中,可能导致缺失。 2. **代码更改影响**:源代码中的某些更新可能与编译后的二进制文件不兼容,特别是在处理异步、GUI库或其他特定功能时。 3. **版本冲突**:不同版本的库之间可能存在兼容性问题,尤其是对于一些第三方库。 4. **资源问题**:例如图片、字体或数据文件路径设置不当,当程序试图访问这些资源时找不到。 5. **错误处理**:如果原始代码中有未捕获的异常,或者对错误的处理方式在打包后不起作用,也会导致程序崩溃。 6. **系统兼容性**:打包后的程序可能仅适用于特定的操作系统或架构,如果用户运行的是不支持的环境,就会出现问题。 针对这种情况,你可以尝试以下解决方案: - **检查依赖**:确保使用`pyinstaller --hidden-import`列出所有的隐式依赖,并确认已包含了正确的DLLs。 - **测试环境**:创建一个干净的虚拟环境,重新安装所有库并进行打包,看看是否还有问题。 - **代码审查**:仔细检查是否有任何潜在的问题,如try-except没有适当地处理。 - **使用命令行参数**:有时候,`--onefile`和`--noconsole`等参数可以提供帮助。 - **日志记录**:在代码中加入足够的日志信息,以便于定位问题所在。 - **社区支持**:在PyInstaller的官方GitHub上搜索类似的问题,或者寻求Stack Overflow等社区的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值