Avatar ·

Llamar C/C++ desde Python: ¿cómo integrar código nativo en un proyecto Python?

¡Hola a todos! Llevo escribiendo en Python unos dos años, pero recientemente me enfrenté a una tarea que me dejó perplejo. Necesito acelerar un módulo computacional en mi proyecto. En Python funciona demasiado lento (bucles con millones de iteraciones), y decidí reescribir la parte crítica en C++. Escribí una función simple en C++ para calcular números 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; } } ``` Lo compilé en DLL usando MinGW: `g++ -shared -o fibonacci.dll fibonacci.cpp` Ahora intento llamarlo desde Python usando ctypes: ```python import ctypes lib = ctypes.CDLL('./fibonacci.dll') result = lib.fibonacci(10) print(result) # Imprime 55 — ¡funciona! ``` Pero este es un caso simple. ¿Y si necesito pasar un array de datos?