You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行detect_main.py触发cv2无face属性AttributeError报错

报错说明

人脸项目操作流程:

  • 执行python train_face.py完成人脸数据录入
  • 执行python detect_main.py启动检测程序时运行失败,抛出如下错误:
File "detect_main.py", line 8, in <module>
    recognizer = cv2.face.LBPHFaceRecognizer_create()
AttributeError: module 'cv2' has no attribute 'face'
故障原因

cv2.face命名空间下的所有人脸识别接口(包括用到的LBPHFaceRecognizer_create)不属于OpenCV基础发行版的内置内容,是存放在opencv-contrib-python扩展包中的附加模块。触发这个报错只有两种可能:一是当前Python环境没安装对应扩展包,二是安装的OpenCV主包和扩展包版本不匹配、存在多版本残留冲突。

修复步骤
  • 先彻底卸载环境中所有残留的OpenCV相关包,避免版本冲突:
    pip uninstall opencv-python opencv-contrib-python -y
    
    上述命令可以重复执行2-3次,直到提示没有对应安装包为止,确保旧版本完全清理干净。
  • 重新安装版本完全匹配的OpenCV主包和扩展包:
    无特殊版本要求的话直接安装最新稳定版即可,执行命令:
    pip install opencv-python opencv-contrib-python
    
    如果项目指定了OpenCV版本,必须给两个包指定完全相同的版本号,例如指定4.8.0.74版本的命令为:
    pip install opencv-python==4.8.0.74 opencv-contrib-python==4.8.0.74
    
  • 安装完成后做功能验证:进入Python交互环境,依次执行以下代码,无报错即修复完成:
    import cv2
    recognizer = cv2.face.LBPHFaceRecognizer_create()
    
避坑提示
  • 两个包版本强绑定,不要单独安装opencv-contrib-python而不装对应版本的主包,版本不一致大概率还是会触发属性缺失报错。
  • 如果使用conda虚拟环境,不要混用pip和conda源安装OpenCV相关包,统一使用同一种包管理工具安装,避免路径冲突导致模块加载失败。

内容的提问来源于stack exchange,提问作者Teddy Gideon Manik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:42:18