Ich arbeite derzeit an einem Projekt, das eine C-Quelldatei verwendet, die mit einer Python-Datei interagieren muss (führen Sie die Datei und Capture-Ausgabe) und ich bin nicht genau sicher TU es. derzeit die Python-Datei wird über den Anschluss (Linux) läuft mit:Ausführen einer Datei mit Argumenten aus Python eingebettet in c
python file arg1 arg2 arg3 arg4
und ich einbetten Python in den C-Code versuchen nur die Datei ausführen erstes (keine Ausgabe Capture) mit dem folgenden Code:
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 sind fest codiert, und args3-4 wird durch den C-Code bestimmt (bestimmt nur ganzzahlige Werte), dieser wird dann an die Python-Datei übergeben, wo er dann ausgeführt wird.
Wenn Sie den obigen Code ausgeführt wird erhalte ich ein: Typeerror: nicht unterstützte Operandtyp (e) für +: NoneType und ‚str‘
Irgendwelche Tipps von hier auf das, was mein Problem sein könnte, wird sehr geschätzt.
EDIT: Ich war mit dieser als Leitfaden, wie es ähnlich zu sein scheint, was im Versuch Run a python script with arguments
Ihr Code ist nicht einmal in der Nähe zu kompilieren! –
Ok, 'PyFinalize' ->' Py_Finalize' und dann ist das Problem scheinbar in Ihrem ** Python ** Code, daher würden Sie lesen wollen [Wie man ein minimales, vollständiges und überprüfbares Beispiel erstellt] (http://stackoverflow.com/help/mcve) –