运行AequilibraE项目加载代码触发FileNotFoundError模型不存在错误求助
问题排查原因
- 路径系统不兼容:你代码中使用的是Windows格式的D盘路径,但报错显示代码运行在Linux环境下(Python库路径为
/home/karabo/前缀),Linux系统无法识别Windows的盘符路径,导致路径拼接后指向不存在的位置。 - 未初始化创建项目:
Project.load()方法仅用于加载已存在的AequilibraE项目文件,如果你是首次创建项目,直接调用load会找不到还没生成的sqlite文件。 - 依赖目录未创建:代码中仅定义了各个子文件夹的变量,没有实际创建
1_project等子目录,路径拼接后父目录不存在也会导致找不到文件。 - 路径拼接方法未导入:如果代码开头未导入
os.path.join,拼接路径逻辑会报错,最终生成无效路径。
解决方案
- 适配运行环境路径
如果是在WSL(Windows子系统Linux)下运行,将Windows盘符路径转为Linux可识别的挂载路径:
# 原Windows路径 # fldr = 'D:/release/Sample models/sioux_falls_2020_02_15' # 替换为WSL路径 fldr = '/mnt/d/release/Sample models/sioux_falls_2020_02_15'
如果是纯Linux环境,将项目文件迁移到Linux磁盘的对应目录,修改fldr为实际的Linux路径。
- 补充项目初始化逻辑,先判断项目是否存在再选择创建/加载:
import os from os.path import join # 先创建所有需要的子目录 sub_folders = [dt_fldr, prj_fldr, skm_fldr, assg_fldr, dstr_fldr, frcst_fldr, ftr_fldr] for folder in sub_folders: full_folder = join(fldr, folder) os.makedirs(full_folder, exist_ok=True) project = Project() proj_full_path = join(fldr, prj_fldr, proj_name) # 首次运行创建新项目,后续运行直接加载 if os.path.exists(proj_full_path): project.load(proj_full_path) else: project.new(proj_full_path)
- 增加路径排查逻辑
在调用项目加载代码前打印拼接后的路径,确认路径有效性:
print("实际拼接的项目路径:", proj_full_path)
运行后核对打印的路径是否真实存在,即可快速定位路径拼写、空格、大小写等问题。
内容的提问来源于stack exchange,提问作者Karabo
相关产品推荐
相关产品推荐

