face_recognition库加载失败:无法打开shape_predictor_68_face_landmarks.dat
解决face_recognition库无法加载shape_predictor模型的问题
针对你遇到的RuntimeError: Unable to open shape_predictor_68_face_landmarks.dat错误,可尝试以下解决方案:
检查路径编码问题
你的Windows用户名包含阿拉伯语字符(علي),dlib对非ASCII路径的兼容性较差,容易导致文件读取失败。可以:- 将Python重新安装到全英文路径的目录(如
C:\Python38),确保所有依赖库的安装路径无特殊字符; - 创建一个英文用户名的Windows新用户,在新用户环境下重新安装face_recognition及相关依赖。
- 将Python重新安装到全英文路径的目录(如
手动指定模型路径
修改face_recognition库的api.py文件,强制指定模型的英文路径:- 找到文件
C:\Users\علي\AppData\Roaming\Python\Python38\site-packages\face_recognition\api.py; - 找到代码行
predictor_68_point_model = os.path.join(os.path.dirname(__file__), "../face_recognition_models/models/shape_predictor_68_face_landmarks.dat"); - 将其替换为模型文件的英文绝对路径,例如
predictor_68_point_model = "C:/FaceModels/shape_predictor_68_face_landmarks.dat"(注意使用正斜杠或双反斜杠); - 保存文件后重新运行测试代码。
- 找到文件
重新安装face_recognition_models库
强制重新安装模型库,确保文件完整无损坏:pip uninstall face_recognition_models -y pip install face_recognition_models --no-cache-dir安装完成后,检查
C:\Users\علي\AppData\Roaming\Python\Python38\site-packages\face_recognition_models\models\目录下是否存在目标文件,且文件大小约为99MB。使用全英文路径的虚拟环境
创建路径无特殊字符的虚拟环境,在隔离环境中安装依赖:mkdir C:\FaceRecognitionEnv cd C:\FaceRecognitionEnv python -m venv venv venv\Scripts\activate pip install face_recognition numpy pillow激活虚拟环境后,将测试代码和图片放入该目录下运行。
内容的提问来源于stack exchange,提问作者Salem Ali
相关产品推荐
相关产品推荐

