DeepFace 0.0.89 版本重构了模块结构,原 deepface.commons.distance 已移至 deepface.modules.verification,需通过新路径导入距离计算函数(如 find_euclidean_distance)。
deepface 0.0.89 版本重构了模块结构,原 `deepface.commons.distance` 已移至 `deepface.modules.verification`,需通过新路径导入距离计算函数(如 `find_euclidean_distance`)。
在 DeepFace 的最新版本(v0.0.89 及以上)中,为提升代码可维护性与功能解耦,开发者将原本位于 deepface.commons 中的距离计算逻辑整体迁移至 deepface.modules.verification 模块。这意味着以下传统导入方式将引发 ImportError:
# ❌ 已废弃 —— 运行时抛出 ImportError from deepface.commons import distance # 或 from deepface.commons.distance import find_euclidean_distance
✅ 正确的替代方案是显式从 verification 模块导入所需函数:
from deepface.modules import verification
# 计算欧氏距离(示例)
x = [0.1, 0.3, 0.5]
y = [0.2, 0.2, 0.6]
dist = verification.find_euclidean_distance(x, y)
print(f"Euclidean distance: {dist:.4f}") # 输出类似:0.1732
# 其他可用距离函数(均在 verification 模块中)
cosine_sim = verification.find_cosine_similarity(x, y)
manhattan_dist = verification.find_manhattan_distance(x, y)⚠️ 注意事项:
- 不要尝试手动修改 deepface/commons/__init__.py 或降级包来“修复”该错误——这违背语义版本演进原则,且可能引发其他兼容性问题(如与 TensorFlow 2.14.1 的交互异常);
- 若你使用的是自定义人脸验证逻辑,建议同步检查是否调用了 distance.* 下的其他函数(如 find_threshold),它们同样已迁移至 verification 模块;
- 可通过 pip show deepface 确认当前版本,并执行 pip install --upgrade deepface 确保获取最新稳定版及完整文档支持。
该变更属于向后不兼容的公共 API 调整,但符合 DeepFace 模块化演进方向。遵循新导入路径不仅能解决报错,还能更精准地定位验证相关功能,提升代码可读性与可维护性。

















