【解决方法】使用pyinstaller打包opencv程序为exe文件打不开

【解决方法】使用pyinstaller打包opencv程序为exe文件打不开

Traceback (most recent call last):
File “xx.py”, line 13, in
cv2.error: OpenCV(4.7.0) D:\a\opencv-python\opencv-python\opencv\modules\objdetect\src\cascadedetect.cpp:1689: error: (-215:Assertion failed) !empty() in function ‘cv::CascadeClassifier::detectMultiScale’

是学习opencv人脸识别时出现的错误,在网上找了很久都没有解决,最后分享一下我的解决方法希望能帮助有需要的人。

我的pip list
Package Version


altgraph 0.17.3
numpy 1.24.2
opencv-python 4.7.0.68
pefile 2023.2.7
pip 23.0
pyinstaller 5.8.0
pyinstaller-hooks-contrib 2022.15
pywin32-ctypes 0.2.0
setuptools 65.5.0

级联分类器这里请大家使用相对路径即cv2.data.haarcascades+''的形式
eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+‘haarcascade_eye.xml’)
smile_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+‘haarcascade_smile.xml’)
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades+‘haarcascade_frontalface_default.xml’)

使用pyinstaller -D -w 文件名.py 命令打包后会生成dist和build文件夹
在这里插入图片描述

打开dist\文件名 文件夹中的 文件名.exe
出现报错在这里插入图片描述
注意到和exe文件同目录下的,CV2文件夹下只有一个__init__.py文件
在这里插入图片描述
将C:\Users\用户名\AppData\Local\Programs\Python\Python310\Lib\site-packages\cv2\data目录下init.py 文件外的所有文件复制到打包程序的CV2文件夹下,exe文件即可成功运行。

总结一下大概就是打包的时候并没有把opencv(cv2)库的所有所需文件保存完整需要手动保存。pyinstaller背大锅

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值