在 Dymola Python 接口中找不到 C 编译器

C compiler not found in Dymola Python interface

我写了一个 python 脚本,它运行一些用于 Gitlab 管道持续集成的 Modelica 脚本文件。我可以让 python 脚本从命令行运行而没有任何问题,但是,每当我在 Gitlab 中触发管道时,我都会在下面收到错误,我很好奇是否有人遇到过类似的问题并可能提供解决方案?

No compiler selected. Please select a version of Visual C++ or GCC. For instructions on how to install a supported compiler, please visit www.dymola.com/compiler.

我尝试使用SetDymolaCompiler方法,但它仍然给我同样的错误。 (顺便说一句,python 界面中的文档不正确。在文档中,字符串列表(参见 marco 的回答和我的更正)用于设置编译器位置,但是,我认为它实际上应该是一个地图)。

这是我的代码 运行:

dymola_obj = None
try:
    dym_obj = DymolaInterface(dymola_exe)
    dym_obj.cd(mc_work_dir)
    dym_obj.SetDymolaCompiler("vs", {"CCompiler":"MSVC","MSVCDir":"C:/Program Files (x86)/Microsoft Visual Studio 11.0/Vc"})
    success = dym_obj.ExecuteCommand("some command")
except DymolaException as ex:
    success = False
finally:
    if dym_obj is not None:
        dym_obj.close()
        dym_obj = None
return success

更正:

Python 接口文档仍然不正确,为了更改编译器设置,应该使用 [] 而不是 { }。

Python接口文档:

SetDymolaCompiler("vs", {"CCompiler=MSVC","MSVCDir=C:/Program Files (x86)/Microsoft Visual Studio 10.0/Vc"});

应改为:

SetDymolaCompiler("vs", ["CCompiler=MSVC","MSVCDir=C:/Program Files (x86)/Microsoft Visual Studio 10.0/Vc"]);

我没有尝试使用 gitlab,但是当 运行 你的代码在我的机器上使用 Dymola 2018 FD01 和 python 2.7 时我发现了一个错误。

事实上,SetDymolaCompiler 确实需要一个字符串列表。您必须更换行

 dym_obj.SetDymolaCompiler("vs", {"CCompiler":"MSVC","MSVCDir":"C:/Program Files (x86)/Microsoft Visual Studio 11.0/Vc"});

dym_obj.SetDymolaCompiler('vs', ['CCompiler=MSVC', 'MSVCDir="C:/Program Files (x86)/Microsoft Visual Studio 11.0/Vc'])

使用 python 界面时的一些提示:

  • 在开发期间激活 Dymola window DymolaInterface(showwindow=True)

  • 设置断点并在每个命令后检查 Dymola 写入命令的内容 window。在您的情况下,很明显 SetDymolaCompiler 由于语法错误而未执行,并且未设置编译器

最后,您的最小示例不起作用,因为 python 代码行不得以 ;

结尾