Cython für C++: Komplettguide mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Cython für C++: Komplettguide mit Beispielen

Willkommen bei PythonLib! Heute tauchen wir ein in die faszinierende Welt von Cython – einem mächtigen Werkzeug, das die Flexibilität von Python mit der Performance von C und C++ vereint. Falls du schon immer leistungsstarke Python-Erweiterungen in C++ schreiben wolltest, ohne die vertraute Python-Syntax zu verlassen, bist du hier genau richtig.

1. Was ist Cython und wozu dient es?

Cython ist eine kompilierte Programmiersprache, die eine Obermenge von Python darstellt. Sie ermöglicht es, Code zu schreiben, der in effizienten C/C++-Code übersetzt und anschließend in dynamische Bibliotheken (Python-Erweiterungen) kompiliert wird. Das Hauptziel von Cython ist es, Python-Programme zu beschleunigen und direkten Zugriff auf C/C++-Bibliotheken zu ermöglichen.

Warum ist das nötig? Python als interpretierte Sprache ist in puncto Performance oft unterlegen. Cython löst dieses Problem, indem es Folgendes ermöglicht:

  • Kritische Codeabschnitte um das 10- bis 100-fache beschleunigen – durch statische Typisierung und Kompilierung.
  • Vorhandene C/C++-Bibliotheken integrieren (z. B. OpenCV, NumPy, TensorFlow), ohne Wrapper in reinem C schreiben zu müssen.
  • Hochperformante Python-Module erstellen für wissenschaftliches Rechnen, Datenverarbeitung, maschinelles Lernen und Spiele.
  • Die vertraute Python-Syntax nutzen mit minimalen Änderungen, um C-Geschwindigkeit zu erreichen.

Cython ist besonders beliebt im wissenschaftlichen Python-Ökosystem (SciPy, scikit-learn, pandas), wo Performance entscheidend ist. Es wird auch in Web-Frameworks (z. B. uWSGI) und Spiele-Engines (Pygame) eingesetzt.

2. Cython installieren

Die Installation von Cython ist einfach und erfolgt über den Standard-Paketmanager pip. Für die Arbeit mit C++ benötigst du außerdem einen C++-Compiler (g++, clang++ oder MSVC).

# Cython installieren
pip install cython

# Für die Entwicklung ist auch setuptools hilfreich
pip install setuptools

# Installation überprüfen
python -c "import cython; print(cython.__version__)"

Hinweis: Wenn du Anaconda verwendest, ist Cython bereits vorinstalliert. Stelle sicher, dass ein C++-Compiler verfügbar ist:

3. Schnellstart: Minimales Arbeitsbeispiel

Wir erstellen eine einfache Cython-Erweiterung, die zwei Zahlen addiert. Das zeigt den grundlegenden Workflow: .pyx-Datei schreiben, setup.py erstellen und kompilieren.

Schritt 1: Datei hello.pyx erstellen

# hello.pyx
def add(int a, int b):
    return a + b

Schritt 2: Datei setup.py erstellen

# setup.py
from setuptools import setup
from Cython.Build import cythonize

setup(
    ext_modules=cythonize("hello.pyx", language="c++"),  # language="c++" für C++
)

Schritt 3: Erweiterung kompilieren

python setup.py build_ext --inplace

Nach der Kompilierung erscheint eine Datei hello.cpython-3XX-*.so (oder .pyd unter Windows).

Schritt 4: Modul in Python verwenden

# test.py
import hello
print(hello.add(5, 3))  # Ausgabe: 8

Fertig! Du hast soeben deine erste Cython-Erweiterung in C++ erstellt. Im Hintergrund hat Cython C++-Code generiert, diesen kompiliert und eine dynamische Bibliothek erzeugt.

Empfehlungen