Вызов сценария python внутри модели modelica - PullRequest
2 голосов
/ 14 января 2020

Я пытаюсь создать модель Modelica для экспорта в FMU. Эта модель Modelica должна вызывать код Python 3, и мне просто не удается включить его в мою модель. Я нашел это Совместимость - C и Pyton объяснение того, как. Но он не дает структуру сценария python.

Чтобы следовать этому руководству, я написал сценарий pyRunString.py следующим образом:

def pyRunString(s):
    print(s)

И я получаю ошибки компиляции:

В файле, включенном в CallExternalPython_functions. c: 7: 0: CallExternalPython_include.h: В функции 'pyRunString': CallExternalPython_include.h: 9: 21: предупреждение: передача аргумента 1 из Py_SetProgramName из несовместимый тип указателя [-Wincompatible-pointer-types] Py_SetProgramName ("pyRunString"); / * необязательно, но рекомендуется * / ^ В файле, включенном из C: / Users / cabecerrilaguirre / AppData / Local / Continuum / anaconda3 / include / Python .h: 140: 0, из CallExternalPython_include.h: 5, из CallExternalPython_functions . c: 7: C: / Users / cabecerrilaguirre / AppData / Local / Continuum / anaconda3 / include / pylifecycle.h: 40: 18: примечание: ожидается 'const wchar_t * {aka const short unsigned int *}' но аргумент имеет тип 'char *' PyAPI_FUN C (void) Py_SetProgramName (const wchar_t *);

Затем я прокомментировал строку

Py_SetProgramName(\"pyRunString\"); /* optional but recommended */

И получил:

CallExternalPython_functions.o: CallExternalPython_functions. c :(. Text + 0xb): неопределенная ссылка на __imp_Py_Initialize' CallExternalPython_functions.o:CallExternalPython_functions.c:(.text+0x18): undefined reference to __ imp_PyRun_SimpleStringFlags 'CallExternalPython_functions.o: CallExternalPython * *. 10 + .x. : неопределенная ссылка на `__imp_Py_Finalize 'collect2.exe: ошибка: ld вернул 1 состояние выхода CallExternal Python .makefile: 32: сбой рецепта для цели' omc_main_target 'mingw32-make: *** [omc_main_target] Er ror 1 mingw32-make: Выход из каталога 'C: / Users / CABECE ~ 1 / AppData / Local / Temp / OPENMO ~ 1' РЕЗУЛЬТАТ: 2

Может ли кто-нибудь помочь мне понять, кто я не так, пожалуйста?

...