Der Versuch, einen Python-Interpreter in eine C++ - Anwendung einzubetten. Dachte, es wäre einfach, aber ich habe Schwierigkeiten, denke ich mit der Verknüpfung. Das einzig Ungewöhnliche ist, dass ich versuche, ein spezifisches Anaconda-Paket zu verwenden. Die einfache C++ Code ist:Einbetten von Python in C/C++ von Anaconda PyThreadState_Get: kein aktueller Thread
# include <Python.h>
int main()
{
printf("before initialize");
Py_Initialize();
printf("after initialize");
PyRun_SimpleString("print('Hello from Python')");
Py_Finalize();
return 0;
}
zu kompilieren i verwenden:
gcc pythonTest.cc -I/path/to/anaconda/include/python3.6m -L/path/to/anaconda/lib/python3.6/config-3.6m-x86_64-linux-gnu -lm -lpthread -ldl -lutil -lpython3.6m -o pytest
Es ist zu kompilieren, aber wenn ich das einfache Programm ausführen ich erhalte:
Fatal Python error: PyThreadState_Get: no current thread
before initializeAborted
Ich habe habe die Pfad, den das Programm sieht, und es enthält den Pfad zu der gleichen ausführbaren Python-Datei, wie ich sie mit den Includes und Libs angegeben habe. Einige Suchvorgänge scheinen jedoch darauf hinzudeuten, dass die Python-Version irgendwie anders aufgerufen wird als die, mit der verlinkt wurde. Ich weiß nicht genau, wie ich das herausfinden soll. mit kompilieren
ich genau das gleiche Problem haben. Hast du es jemals geschafft, das zu lösen? – kdheepak