Heim >Backend-Entwicklung >Python-Tutorial >So betten Sie Python für die Entwicklung in C/C ein

So betten Sie Python für die Entwicklung in C/C ein

大家讲道理
大家讲道理Original
2016-11-07 11:29:171468Durchsuche

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 &#39;hi, python!&#39;");  
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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn