Python FileNotFoundError求助:路径斜杠与文件定位问题
问题:Joblib加载模型时出现FileNotFoundError
错误信息
File "/usr/local/lib/python3.8/site-packages/joblib/numpy_pickle.py", line 650, in load with open(filename, 'rb') as f: FileNotFoundError: [Errno 2] No such file or directory: 'artifacts\\model_trainer\\model.joblib'
文件路径说明
- 模型文件
model.joblib绝对路径:
C:\Users\Dell\OneDrive\Desktop\Real_projects\End_to_end_ml_project_mlops\artifacts\model_trainer\model.joblib
- 执行加载操作的
prediction.py路径:
C:\Users\Dell\OneDrive\Desktop\Real_projects\End_to_end_ml_project_mlops\src\mlproject\pipeline\prediction.py
已尝试操作
- 使用完整绝对路径加载模型:
self.model = joblib.load(Path("C:\Users\Dell\OneDrive\Desktop\Real_projects\End_to_end_ml_project_mlops\artifacts\model_trainer\model.joblib"))
- 将路径中的反斜杠替换为正斜杠(/),问题仍未解决。
解决建议
- 修正路径字符串格式:Windows路径中的反斜杠是转义字符,要么手动转义,要么使用原始字符串声明:
# 转义反斜杠写法 self.model = joblib.load(Path("C:\\Users\\Dell\\OneDrive\\Desktop\\Real_projects\\End_to_end_ml_project_mlops\\artifacts\\model_trainer\\model.joblib")) # 原始字符串写法(更简洁) self.model = joblib.load(Path(r"C:\Users\Dell\OneDrive\Desktop\Real_projects\End_to_end_ml_project_mlops\artifacts\model_trainer\model.joblib")) - 使用相对路径(推荐):基于
prediction.py的位置动态构造路径,避免硬编码绝对路径的兼容性问题:from pathlib import Path # 从当前文件向上回溯到项目根目录 project_root = Path(__file__).parents[3] model_path = project_root / "artifacts" / "model_trainer" / "model.joblib" self.model = joblib.load(model_path) - 验证路径有效性:加载前先打印路径并检查是否存在,排查拼写或同步问题:
如果输出model_path = Path(r"C:\Users\Dell\OneDrive\Desktop\Real_projects\End_to_end_ml_project_mlops\artifacts\model_trainer\model.joblib") print(f"当前模型路径:{model_path}") print(f"路径是否存在:{model_path.exists()}")路径是否存在:False,检查文件夹名称拼写、OneDrive同步状态(确保文件已完全下载到本地)。
内容的提问来源于stack exchange,提问作者Satyam Sharma
相关产品推荐
相关产品推荐

