ModelicaGym运行时传入的fmu路径被加日期前缀和txt后缀报错如何解决
问题原因
路径被添加日期前缀和.txt后缀不是Python的自动行为,是ModelicaGym框架父类构造逻辑的内置规则:框架会默认生成运行日志,日志文件命名规则为{当前日期}_{传入的FMU文件路径}.txt,你在异常中看到的路径是拼接后的日志文件路径,并非你传入的FMU路径被修改。
报错的核心原因是拼接日志路径时保留了相对路径的./前缀,系统无法正确识别该路径结构,无法创建对应的日志文件,因此抛出文件不存在错误。
解决方案
按以下步骤排查修复即可:
- 优先改用绝对路径
用os模块基于脚本本身位置生成绝对路径,避免执行脚本时工作目录变化导致路径失效:import os # 获取当前fileCallingFMU.py所在文件夹的绝对路径 base_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接得到FMU文件的绝对路径 path = os.path.join(base_dir, "resources", "customFile.fmu") - 确保日志写入目录存在
若需要保留默认日志逻辑,提前创建日志要写入的对应目录,也可以修改ModelicaGym基类的日志生成逻辑,将日志直接输出到固定的当前工作目录,避免拼接FMU路径结构。 - 校验运行工作目录
若坚持使用相对路径,要保证执行python fileCallingFMU.py命令时,终端的当前工作目录就是fileCallingFMU.py的存放目录,确保./resources/能正确指向FMU所在文件夹。
内容的提问来源于stack exchange,提问作者Viktor Katzy
相关产品推荐
相关产品推荐

