Seite 1 von 1
C++/Rust - Code in Python-Projekt einbinden
Verfasst: Sonntag 1. März 2026, 10:48
von Dennis89
Guten morgen zusammen,
ich habe eine allgemeine Frage. Wenn ich aus Performance-Gründen (oder sonstige Gründe), Code in einer Sprache wie C++ oder Rust schreiben möchte, wie muss das Projekt aufgebaut sein, dass ich das in mein Python-Projekt installieren und importieren kann? Ich gehe davon aus, dass das der allgemeine Weg ist und nicht ein simpler Aufruf mit `subprocess`?
Ich habe mich mal etwas durch das `Numpy`-Projekt geklickt. Allerdings ist das eventuell etwas zu groß um die Struktur zu erkennen.
Ich würde nun Code schreiben, dass Eingaben entgegen nimmt und dann irgendwas berechnet. Zum Beispiel ganz simple:
Code: Alles auswählen
fn add(x: i32, y: i32) -> i32 {
return x + y;
}
fn main() {
let result = add(1, 2);
}
Das kann ich kompilieren und ausführen. Ich habe aber keine API. Muss ich jetzt um diesen Code einen Python-Wrapper schreiben oder wie sind die einzelnen Schritte, dass ich nachher den Code in mein Python-Projekt installieren und importieren kann?
Danke und Grüße
Dennis
Re: C++/Rust - Code in Python-Projekt einbinden
Verfasst: Sonntag 1. März 2026, 11:41
von grubenfox
'numpy-Projekt'?
Also für C bzw. C+ sollte
https://docs.python.org/3/extending/index.html und
https://docs.python.org/3/c-api/intro.html#c-api-tools hilfreich sein... [hoffe ich, ich habe da genau Null Erfahrung]
zu Rust wollte ich schreiben "keine Ahnung", aber ich sehe beim zweiten Link gerade dass dort auch Rust erwähnt wird und PyO3 (
https://pyo3.rs/v0.28.2/)
Re: C++/Rust - Code in Python-Projekt einbinden
Verfasst: Sonntag 1. März 2026, 12:03
von sparrow
@grubenfox: numpy ist eine Bibliothek für numerische Berechnung in Python, die dafür bekannt ist, dass sie extrem schnell ist, weil sie nur ein Wrappen um sehr schnelle C oder C++ Funktionen ist.
@Dennis89:
In diesem Video wird ganz gut erklärt, wie man das mot pyo3 in Rust macht. Das schöne ist, dass man da auf Rust-Seite alles tut und sich das in Python wie ein ganz normaler Import anfühlt. Damit habe ich auch schon Dinge umgesetzt.
Und bitte daran denken, dass Rust-Code deutlich langsamer ist, wenn es nicht als "realease" kompiliert wird.
Re: C++/Rust - Code in Python-Projekt einbinden
Verfasst: Sonntag 1. März 2026, 12:58
von grubenfox
sparrow hat geschrieben: Sonntag 1. März 2026, 12:03
@grubenfox: numpy ist eine Bibliothek für numerische Berechnung in Python, die dafür bekannt ist, dass sie extrem schnell ist, weil sie nur ein Wrappen um sehr schnelle C oder C++ Funktionen ist.
Das ist klar. Bei Dennis89 klang das mit dem Numpy-Projekt für mich so als ob das ein viel kleineres DemoProjekt als das originale numpy wäre, nur für das erklären vom wrappen von C-Code. Das normale numpy wäre mir viel zu groß um da irgendwas zu erkennen.
Da lieber ein kleineres einfaches Beispiel wie das aus der Python-Doku oder von Dennis89 vorgeschlagen. Prinzipiell sind die ja identisch: eine C-Funktion die mit einem [Beispiel Python-Doku] oder zwei [Beispiel Dennis89] Parametern aufgerufen wird und ein Ergebnis zurück an Python liefert.
Re: C++/Rust - Code in Python-Projekt einbinden
Verfasst: Sonntag 1. März 2026, 13:11
von sparrow
Oh, mir fällt ein: Ich weiß gar nicht, worin der kompilierte Teil von Numpy geschrieben ist.
Könnte also auch in einer anderen Sprache geschrieben sein.
Re: C++/Rust - Code in Python-Projekt einbinden
Verfasst: Sonntag 1. März 2026, 14:39
von grubenfox
The core of NumPy is well-optimized C code.
Re: C++/Rust - Code in Python-Projekt einbinden
Verfasst: Sonntag 1. März 2026, 19:09
von Dennis89
Perfekt, vielen Dank.
Damit kann ich erst mal Zeit verbringen und probieren.
Grüße
Dennis
Re: C++/Rust - Code in Python-Projekt einbinden
Verfasst: Sonntag 1. März 2026, 19:42
von imonbln
Wenn es ein Buch sein darf kann ich folgendes Empfehlen um Rust mit Python zu kombinieren.
https://www.amazon.de/-/en/Speed-Your-P ... 180181144X
Re: C++/Rust - Code in Python-Projekt einbinden
Verfasst: Montag 2. März 2026, 06:16
von Dennis89
Hört sich gut an, Danke dafür.
Grüße
Dennis