В настоящее время я работаю над проектом, в котором используется исходный файл C, который должен взаимодействовать с файлом python (запускать файл и записывать вывод), и я не совсем уверен, как это сделать. в настоящее время файл python запускается через терминал (linux), используя:
python file arg1 arg2 arg3 arg4
и я пытаюсь встроить python в код C, чтобы сначала запустить файл (без захвата вывода), используя следующий код:
void python() {
FILE * file;
int argc;
char * argv[5];
argc=5;
argv[0]="pathtofile/file";
argv[1]="arg1";
argv[2]="arg2";
argv[3]="arg3";
argv[4]="arg4";
Py_SetProgramName(argv[0]);
Py_Initialize();
PySys_SetArgv(argc,argv);
file= fopen("pathtofile/file","r");
PyRun_SimpleFile(file,"pathtofile/file");
PyFinalize();
}
args1-2 жестко закодированы, а args3-4 определяются кодом C (просто определяет целые значения), затем они передаются в файл python, где затем выполняются.
При запуске приведенного выше кода я получаю: TypeError: неподдерживаемые типы операндов для +: NoneType и 'str'
Любые советы отсюда о том, что может быть моей проблемой, очень ценятся.
РЕДАКТИРОВАТЬ: я использовал это как руководство, поскольку оно похоже на то, что я пытаюсь достичь Запустить скрипт Python с аргументами
PyFinalize
->Py_Finalize
, а затем проблема, по-видимому, в вашем коде Python, поэтому вам нужно прочитать Как для создания минимального, полного и проверяемого примера - person Antti Haapala   schedule 20.04.2016