使用SCRFD实现人脸检测时报错mmcv无__version__属性如何解决
问题定位与解决方案
问题定位
该报错是mmcv版本适配、安装不完整或者环境依赖冲突导致的典型问题,常见触发场景如下:
- 安装的是mmcv-lite而非完整版的mmcv,mmcv-lite裁剪了版本属性等非核心模块
- mmcv与mmdet的版本不匹配,SCRFD依赖特定版本范围的mmdet和mmcv组合
- 本地环境存在多个版本的mmcv,Python解释器优先加载了没有正确安装的版本
- 安装mmcv时未对应本地CUDA、PyTorch版本,导致组件安装失败缺失核心属性
解决步骤
步骤1:清理现有不兼容的mmcv包
先卸载所有已安装的mmcv相关组件,避免冲突:
pip uninstall mmcv mmcv-full mmcv-lite -y
步骤2:安装适配SCRFD的版本组合
SCRFD是在mmdet 2.x版本下开发的,对应适配mmcv 1.3.x ~ 1.7.x版本,不要安装最新的mmcv 2.x版本:
- 如果你的环境有CUDA,安装对应版本的mmcv-full,可根据本地PyTorch、CUDA版本选择对应预编译包,示例命令:
pip install mmcv-full==1.7.1
- 如果是CPU环境,安装对应版本的mmcv即可:
pip install mmcv==1.7.1
步骤3:安装匹配的mmdet版本
安装mmdet 2.x的稳定版本,不要升级到mmdet 3.x:
pip install mmdet==2.28.2
步骤4:验证安装是否成功
运行以下代码验证版本属性可以正常读取:
import mmcv print(mmcv.__version__)
如果能正常输出版本号,说明问题已经解决。
内容的提问来源于stack exchange,提问作者Ali Ganjbakhsh
相关产品推荐
相关产品推荐

