Este repositorio contiene un ejemplo sencillo de cómo utilizar Cython para acelerar una función matemática en Python. El ejemplo calcula el número de Fibonacci de manera recursiva, mostrando cómo crear el archivo .pyx, compilarlo y utilizarlo desde Python.
cpython/
├── fibonacci.pyx
├── setup.py
└── script_fibonacci.py
def fibonacci(int n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)from setuptools import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize("fibonacci.pyx")
)import fibonacci
result = fibonacci.fibonacci(10)
print(f"The 10th Fibonacci number is: {result}")
result = fibonacci.fibonacci(20)
print(f"The 20th Fibonacci number is: {result}")python3 -m pip install cython setuptoolsEjecutar desde la carpeta cpython del repositorio:
python setup.py build_ext --inplaceEsto generará la extensión fibonacci con un sufijo correspondiente a tu
versión de Python.
python3 script_fibonacci.pyEl script imprime los resultados para n=10 y n=20.
- Acelera el cálculo de Fibonacci usando Cython (traduce el código a C y lo compila).
- Permite tipar argumentos para obtener mayor velocidad.
- Demuestra cómo integrar módulos Cython en un flujo de trabajo Python estándar.
- Se puede modificar la función en
fibonacci.pyxpara experimentar con otras operaciones matemáticas o algoritmos. - Para obtener mayor velocidad, tipear todas las variables internas y usar bucles en Cython.