Appel de C/C++ depuis Python : comment intégrer du code natif dans un projet Python ?
Bonjour à tous ! J'écris en Python depuis environ deux ans, mais récemment j'ai rencontré un problème qui m'a laissé perplexe. Je dois accélérer un module de calcul dans mon projet. En Python, il est trop lent (boucles sur des millions d'itérations), et j'ai décidé de réécrire la partie critique en C++.
J'ai écrit une fonction simple en C++ pour calculer les nombres de Fibonacci :
```cpp
// fibonacci.cpp
#include
extern "C" {
int fibonacci(int n) {
if (n <= 1) return n;
int a = 0, b = 1, temp;
for (int i = 2; i <= n; ++i) {
temp = a + b;
a = b;
b = temp;
}
return b;
}
}
```
Je l'ai compilée en DLL avec MinGW : `g++ -shared -o fibonacci.dll fibonacci.cpp`
Maintenant, j'essaie de l'appeler depuis Python avec ctypes :
```python
import ctypes
lib = ctypes.CDLL('./fibonacci.dll')
result = lib.fibonacci(10)
print(result) # Affiche 55 — ça marche !
```
Mais c'est un cas simple. Et si je dois passer un tableau de données...