Wenn Sie Python in C/C einbetten möchten, ist es relativ einfach. Sie müssen lediglich das Include-Dateiverzeichnis und das lib-Dateiverzeichnis von Python in VC hinzufügen. Schauen wir uns an, wie man Python in C/C einbettet.
Öffnen Sie unter VC6.0 Tools->Optionen->Verzeichnisse->Verzeichnisse anzeigen für, fügen Sie das Include-Verzeichnis im Python-Installationsverzeichnis zum Element „Include-Dateien“ hinzu und fügen Sie das Verzeichnis „libs“ zum Element „Bibliotheksdateien“ hinzu .
Öffnen Sie unter VC2005 das Verzeichnis „Tools->Optionen->Projekte und Lösungen->VC“ und führen Sie dann die gleiche Arbeit aus.
Der Code lautet wie folgt:
Beim Ausführen unter Debug ist ein Fehler aufgetreten: „Die Datei python31_d.lib wurde nicht gefunden.“ Der Grund wurde später herausgefunden: Die Datei python31_d.lib muss unter Debug generiert werden, sonst nur Kann unter Release generiert werden
#include <python.h> int main() { Py_Initialize(); PyRun_SimpleString("Print 'hi, python!'"); Py_Finalize(); return 0; }
Der Prototyp der Py_Initialize-Funktion lautet: void Py_Initialize()
Diese Funktion muss beim Einbetten verwendet werden Python in C/C, es initialisiert Der Python-Interpreter muss diese Funktion aufrufen, bevor er andere Python/C-APIs verwendet. Mit der Funktion Py_IsInitialized können Sie feststellen, ob die Initialisierung erfolgreich ist, und bei Erfolg True zurückgeben.
Der Prototyp der PyRun_SimpleString-Funktion ist int PyRun_SimpleString(const char *command), der zum Ausführen eines Teils des Python-Codes verwendet wird.
Hinweis: Müssen Sie den Einzug zwischen Anweisungen beibehalten?
Der Prototyp der Py_Finalize-Funktion ist void Py_Finalize(), mit dem der Python-Interpreter geschlossen und die vom Interpreter belegten Ressourcen freigegeben werden.
Die Funktion PyRun_SimpleFile kann zum Ausführen von „.py“-Skriptdateien verwendet werden. Der Funktionsprototyp lautet wie folgt:
int PyRun_SimpleFile(FILE *fp, const char *filename);
wobei fp der Zeiger auf die geöffnete Datei ist und Dateiname der Name der auszuführenden Python-Skriptdatei ist. Da die offizielle Version dieser Funktion jedoch von Visual Studio 2003.NET kompiliert wird, kann es bei Verwendung anderer Versionen des Compilers aus Versionsgründen zu einem Absturz der FILE-Definition kommen. Gleichzeitig können Sie der Einfachheit halber die folgende Methode verwenden, um diese Funktion zu ersetzen:
PyRun_SimpleString("execfile('file.py')"); //Execfile zum Ausführen von Python-Dateien verwenden
Py_BuildValue( ) wird verwendet, um Zahlen und Zeichenfolgen in entsprechende Datentypen in Python zu konvertieren (in der Sprache C werden alle Python-Typen als PyObject-Typen deklariert:
PyObject *Py_BuildValue). (const char *format, …..);
PyString_String() wird verwendet, um Variablen vom Typ PyObject* in den Typ char* zu konvertieren, der von der C-Sprache verarbeitet werden kann. Der spezifische Prototyp lautet wie folgt:
char * PyString_String(PyObject *p);
Das Obige ist eine Einführung in die Einbettung von Python in C/C