Erweiterung und Einbettung des Python-Interpreters¶
Dieses Dokument beschreibt, wie Module in C oder C++ geschrieben werden, um den Python-Interpreter mit neuen Modulen zu erweitern. Diese Module können nicht nur neue Funktionen, sondern auch neue Objekttypen und deren Methoden definieren. Das Dokument beschreibt auch, wie der Python-Interpreter in eine andere Anwendung eingebettet wird, um als Skriptsprache verwendet zu werden. Schließlich wird gezeigt, wie Erweiterungsmodule kompiliert und verknüpft werden, damit sie dynamisch (zur Laufzeit) in den Interpreter geladen werden können, falls das zugrunde liegende Betriebssystem dies unterstützt.
Dieses Dokument setzt grundlegende Kenntnisse über Python voraus. Eine informelle Einführung in die Sprache finden Sie im Python-Tutorial. Die Python-Sprachreferenz bietet eine formellere Definition der Sprache. Die Python-Standardbibliothek dokumentiert die vorhandenen Objekttypen, Funktionen und Module (sowohl integrierte als auch in Python geschriebene), die der Sprache ihren breiten Anwendungsbereich verleihen.
Eine detaillierte Beschreibung der gesamten Python/C-API finden Sie im separaten Python/C API Referenzhandbuch.
Empfohlene Drittanbieter-Tools¶
Diese Anleitung behandelt nur die grundlegenden Tools zur Erstellung von Erweiterungen, die als Teil dieser CPython-Version bereitgestellt werden. Einige Drittanbieter-Tools bieten sowohl einfachere als auch fortschrittlichere Ansätze zur Erstellung von C- und C++-Erweiterungen für Python.
Erstellen von Erweiterungen ohne Drittanbieter-Tools
Dieser Abschnitt der Anleitung behandelt die Erstellung von C- und C++-Erweiterungen ohne Hilfe von Drittanbieter-Tools. Er richtet sich in erster Linie an die Entwickler dieser Tools und nicht als empfohlener Weg, eigene C-Erweiterungen zu erstellen.
Siehe auch
PEP 489 – Mehrphasen-Initialisierung von Erweiterungsmodulen
- 1. Erweitern von Python mit C oder C++
- 1.1. Ein einfaches Beispiel
- 1.2. Zwischenspiel: Fehler und Ausnahmen
- 1.3. Zurück zum Beispiel
- 1.4. Die Methodentabelle und Initialisierungsfunktion des Moduls
- 1.5. Kompilierung und Verknüpfung
- 1.6. Aufrufen von Python-Funktionen aus C
- 1.7. Extrahieren von Parametern in Erweiterungsfunktionen
- 1.8. Schlüsselwortparameter für Erweiterungsfunktionen
- 1.9. Aufbauen beliebiger Werte
- 1.10. Referenzzähler
- 1.11. Schreiben von Erweiterungen in C++
- 1.12. Bereitstellen einer C-API für ein Erweiterungsmodul
- 2. Definieren von Erweiterungstypen: Tutorial
- 3. Definieren von Erweiterungstypen: Verschiedene Themen
- 4. Erstellen von C- und C++-Erweiterungen
- 5. Erstellen von C- und C++-Erweiterungen unter Windows
Einbetten der CPython-Laufzeitumgebung in eine größere Anwendung
Manchmal ist es wünschenswert, anstatt eine Erweiterung zu erstellen, die innerhalb des Python-Interpreters als Hauptanwendung ausgeführt wird, die CPython-Laufzeitumgebung in eine größere Anwendung einzubetten. Dieser Abschnitt behandelt einige Details, die damit verbunden sind, dies erfolgreich zu tun.