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

如何编写通用文件路径?人脸识别程序dlib路径配置问题求助

路径设置问题分析与解决

你的问题出在base_path定位和路径拼接逻辑错误:

  • 当前base_path = os.path.dirname(os.path.abspath(__file__))获取的是脚本所在的FaceRec目录路径
  • 而myvenv与programs是Projects根目录下的同级文件夹,从FaceRec往下拼接myvenv路径,会指向不存在的FaceRec/myvenv/...,程序找不到文件时就会默认从当前运行目录(FaceRec)搜索,导致你遇到的现象

解决方案

核心是先定位到所有文件的共同根目录Projects,再基于它拼接目标文件路径:

  1. 获取Projects根目录
    根据你的目录结构(Projects/programs/MyProg/FaceRec),从FaceRec往上回溯3级即可到达Projects:
import os
import dlib

# 获取当前脚本所在目录(FaceRec)
current_script_dir = os.path.abspath(os.path.dirname(__file__))
# 回溯到Projects根目录
projects_root = os.path.abspath(os.path.join(current_script_dir, '../../..'))
  1. 拼接正确的dlib文件路径
    基于projects_root直接指向你存放文件的myvenv/dlib/NeededFile目录:
# 拼接人脸特征点预测器路径
predictor_path = os.path.join(projects_root, 'myvenv', 'dlib', 'NeededFile', 'shape_predictor_68_face_landmarks.dat')
predictor = dlib.shape_predictor(predictor_path)

# 拼接人脸识别模型路径
face_rec_model_path = os.path.join(projects_root, 'myvenv', 'dlib', 'NeededFile', 'dlib_face_recognition_resnet_model_v1.dat')
face_rec_model = dlib.face_recognition_model_v1(face_rec_model_path)

调试建议

在代码中添加打印语句,确认生成的路径是否符合预期:

print("Projects根目录:", projects_root)
print("预测器路径:", predictor_path)

如果路径不对,调整os.path.join中的回溯层级(即../的数量)即可。

内容的提问来源于stack exchange,提问作者Azizbek Raxmatulloyev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:05:57