Heim >Backend-Entwicklung >Python-Tutorial >So betten Sie Python für die Entwicklung in C/C ein
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, andernfalls nur Kann unter Release generiert werden
#include <python.h> int main() { Py_Initialize(); PyRun_SimpleString("Print 'hi, python!'"); Py_Finalize(); return 0; }
Der Funktionsprototyp von Py_Initialize lautet: void Py_Initialize()
Muss kann beim Einbetten von Python in C/C verwendet werden. Mit dieser Funktion wird der Python-Interpreter initialisiert und muss vor der Verwendung anderer Python/C-APIs aufgerufen werden. 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. Wenn Sie Fragen haben, hinterlassen Sie bitte unten eine Nachricht.