为何传入load_data方法的data_dir未解析为绝对路径?
原因分析与解决办法
报错核心原因是目标保存目录不存在,pandas在抛出错误时会自动将绝对路径转换为相对于当前工作目录的相对路径显示,所以看起来像是用了相对路径,但实际是你传入的绝对路径对应的目录并未创建(或存在拼写错误)。
此外代码还有两处潜在问题,一并修正:
- 提前创建数据目录:在
env.py中计算完data_dir和models_dir后,添加自动创建目录的代码,确保目录存在:
# 在env.py的最后添加 data_dir.mkdir(parents=True, exist_ok=True) models_dir.mkdir(parents=True, exist_ok=True)
parents=True会自动创建所有缺失的父目录,exist_ok=True避免目录已存在时抛出错误。
- 规范路径拼接:避免混用
os.path.join和Path对象,直接用Path的原生拼接语法,更可靠:
# 替换train_model.py中的路径拼接代码 dataset_file = data_dir / env.boston_dataset
- 检查
env.boston_dataset变量:确保该变量仅为文件名(例如boston.csv),不要包含任何路径前缀,否则会破坏已有的绝对路径结构。
内容的提问来源于stack exchange,提问作者joesan
相关产品推荐
相关产品推荐

