I am encountering puzzling behaviour trying to instantiate a simple model that is located at some path (not the current directory), which gets me an exception with exit status 3221225781 (google suggests this is "dll not found") in check_model_executable:
> python .\load_package.py
sys.path=['C:\\Users\\myuser\\Software_local\\Modelica\\Issues\\dll_find_problems', 'C:\\Users\\myuser\\AppData\\Local\\miniforge3\\envs\\modelica\\python312.zip', 'C:\\Users\\myuser\\AppData\\Local\\miniforge3\\envs\\modelica\\DLLs', 'C:\\Users\\myuser\\AppData\\Local\\miniforge3\\envs\\modelica\\Lib', 'C:\\Users\\myuser\\AppData\\Local\\miniforge3\\envs\\modelica', 'C:\\Users\\myuser\\AppData\\Local\\miniforge3\\envs\\modelica\\Lib\\site-packages', 'C:\\Users\\myuser\\AppData\\Local\\miniforge3\\envs\\modelica\\Lib\\site-packages\\win32', 'C:\\Users\\myuser\\AppData\\Local\\miniforge3\\envs\\modelica\\Lib\\site-packages\\win32\\lib', 'C:\\Users\\myuser\\AppData\\Local\\miniforge3\\envs\\modelica\\Lib\\site-packages\\Pythonwin']
works
C:\Users\myuser\Software_local\Modelica\Issues\dll_find_problems\load_package.py:6: DeprecationWarning: The class OMCSessionZMQ is depreciated and will be removed in future versions! Please use OMCSession* classes instead!
omc = OMCSessionZMQ()
v1.28.0-dev.836+gca0c61d2c7.cmake
[OMC log for 'sendExpression(expr=loadFile("C:\Users\myuser\Software_local\Modelica\Issues\MyModel.mo"), parsed=True)']: [syntax:warning:2] Lexer treating \ as \\, since \U is not a valid Modelica escape sequence.
[OMC log for 'sendExpression(expr=loadFile("C:\Users\myuser\Software_local\Modelica\Issues\MyModel.mo"), parsed=True)']: [syntax:warning:2] Lexer treating \ as \\, since \u is not a valid Modelica escape sequence.
[OMC log for 'sendExpression(expr=loadFile("C:\Users\myuser\Software_local\Modelica\Issues\MyModel.mo"), parsed=True)']: [syntax:warning:2] Lexer treating \ as \\, since \S is not a valid Modelica escape sequence.
[OMC log for 'sendExpression(expr=loadFile("C:\Users\myuser\Software_local\Modelica\Issues\MyModel.mo"), parsed=True)']: [syntax:warning:2] Lexer treating \ as \\, since \M is not a valid Modelica escape sequence.
[OMC log for 'sendExpression(expr=loadFile("C:\Users\myuser\Software_local\Modelica\Issues\MyModel.mo"), parsed=True)']: [syntax:warning:2] Lexer treating \ as \\, since \I is not a valid Modelica escape sequence.
[OMC log for 'sendExpression(expr=loadFile("C:\Users\myuser\Software_local\Modelica\Issues\MyModel.mo"), parsed=True)']: [syntax:warning:2] Lexer treating \ as \\, since \M is not a valid Modelica escape sequence.
broken
Traceback (most recent call last):
File "C:\Users\myuser\AppData\Local\miniforge3\envs\modelica\Lib\site-packages\OMPython\model_execution.py", line 80, in run
cmdres = subprocess.run(
^^^^^^^^^^^^^^^
File "C:\Users\myuser\AppData\Local\miniforge3\envs\modelica\Lib\subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['C:/Users/myuser/AppData/Local/Temp/b956fe61-9405-4aa1-b400-649fe415d817/MyModel.exe', '-help=help']' returned non-zero exit status 3221225781.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\myuser\AppData\Local\miniforge3\envs\modelica\Lib\site-packages\OMPython\modelica_system_abc.py", line 205, in check_model_executable
returncode = cmd_definition.run()
^^^^^^^^^^^^^^^^^^^^
File "C:\Users\myuser\AppData\Local\miniforge3\envs\modelica\Lib\site-packages\OMPython\model_execution.py", line 101, in run
raise ModelExecutionException(f"Error running model executable {repr(cmdl)}: {ex}") from ex
OMPython.model_execution.ModelExecutionException: Error running model executable ['C:/Users/myuser/AppData/Local/Temp/b956fe61-9405-4aa1-b400-649fe415d817/MyModel.exe', '-help=help']: Command '['C:/Users/myuser/AppData/Local/Temp/b956fe61-9405-4aa1-b400-649fe415d817/MyModel.exe', '-help=help']' returned non-zero exit status 3221225781.
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "C:\Users\myuser\Software_local\Modelica\Issues\dll_find_problems\load_package.py", line 12, in <module>
model = ModelicaSystem(
^^^^^^^^^^^^^^^
File "C:\Users\myuser\AppData\Local\miniforge3\envs\modelica\Lib\site-packages\OMPython\compatibility_v400.py", line 35, in __init__
super().__init__(*args, **kwargs)
File "C:\Users\myuser\AppData\Local\miniforge3\envs\modelica\Lib\site-packages\OMPython\ModelicaSystem.py", line 68, in __init__
self.model(
File "C:\Users\myuser\AppData\Local\miniforge3\envs\modelica\Lib\site-packages\OMPython\modelica_system_omc.py", line 157, in model
self.buildModel(variable_filter)
File "C:\Users\myuser\AppData\Local\miniforge3\envs\modelica\Lib\site-packages\OMPython\modelica_system_omc.py", line 218, in buildModel
self.check_model_executable()
File "C:\Users\myuser\AppData\Local\miniforge3\envs\modelica\Lib\site-packages\OMPython\modelica_system_abc.py", line 207, in check_model_executable
raise ModelicaSystemError(f"Cannot execute model: {exc}") from exc
OMPython.modelica_system_abc.ModelicaSystemError: Cannot execute model: Error running model executable ['C:/Users/myuser/AppData/Local/Temp/b956fe61-9405-4aa1-b400-649fe415d817/MyModel.exe', '-help=help']: Command '['C:/Users/myuser/AppData/Local/Temp/b956fe61-9405-4aa1-b400-649fe415d817/MyModel.exe', '-help=help']' returned non-zero exit status 3221225781.
I suspect some path/environment problems, so I printed the PATH that Python sees. Please advise what I can do to add more diagnostics on the OMPython side.
The MyModel.bat content in the temporary directory is
@echo off
SET PATH=;C:/OpenModelica1.28.0-dev-64bit/bin/;C:/OpenModelica1.28.0-dev-64bit/lib/x86_64-windows-gnu/omc;%PATH%;
SET ERRORLEVEL=
CALL "%CD%/MyModel.exe" %*
SET RESULT=%ERRORLEVEL%
EXIT /b %RESULT%
I am encountering puzzling behaviour trying to instantiate a simple model that is located at some path (not the current directory), which gets me an exception with exit status 3221225781 (google suggests this is "dll not found") in
check_model_executable:Output:
I expect that this instantiation with
ModelicaSystemworks.By the way, OMPython should really define a
__version__attribute so that one can easily report its version.I suspect some path/environment problems, so I printed the PATH that Python sees. Please advise what I can do to add more diagnostics on the OMPython side.
The MyModel.bat content in the temporary directory is
Version and OS