example python c cython

python - example - cython youtube



Utilice Cython como conversor de Python a C (2)

Tengo enormes módulos de Python (+8000 líneas). Básicamente tienen un montón de funciones para interactuar con una plataforma de hardware a través del puerto serie leyendo y escribiendo en registros de hardware.

No son algoritmos numéricos. Entonces la aplicación es solo lectura / escritura en registros de hardware / memoria. Yo uso estas bibliotecas para escribir scripts personalizados. Eventualmente, tengo que mover todas estas cosas para que se ejecuten en un procesador integrado en mi hardware para tener un control más preciso, luego empiezo el evento desde la PC y el resto está en hardware.

Entonces necesito convertirlos a C. Si puedo hacer que mis scripts se conviertan en C por medio de una herramienta automática, eso me ahorraría un gran tiempo. Es por eso que me atrajo Cython. La eficiencia no es importante, mis códigos no son números crujidores. Pero el código generado debería ser relativamente pequeño para caber en mi memoria limitada (pocos cientos de Kilobytes).

¿Puedo usar Cython como convertidor para mis scripts de Python personalizados en C? Supongo que sí, ¿en qué caso puedo usar estos archivos .c para ejecutarlos en mi hardware? No creo que tenga que tener Cython en mi hardware para que se ejecuten. Pero si solo crea algunos archivos .c, puedo verlos y hacerlo independiente, ya que el código no usa muchas de las funciones de Python. Simplemente lo usa como un script rápido de implementar.


  1. Sí, en esencia, esto es lo que hace Cython. Pero ...
  2. No necesitas Cython, sin embargo, necesitas libpython . Puede que sientas que no usa muchas de las funciones de Python, pero creo que si lo intentas, verás que no es cierto. No podrás separar tu programa de su dependencia de libpython mientras usas Python. idioma.

Otra opción es PyPy , específicamente es la cadena de herramientas de traducción , NO el intérprete de PyPy Python. Te permite traducir RPython , un subconjunto del lenguaje Python, en C. Si realmente no estás usando muchas bibliotecas o características del lenguaje Python, esto puede funcionar.

PyPy se conoce principalmente como una implementación alternativa de Python, pero también es un conjunto de herramientas para compilar lenguajes dinámicos en varias formas. Esto es lo que permite que la implementación PyPy de Python, escrita en (R) Python, se compile en código de máquina.

Si C ++ está disponible, Nuitka es un compilador de Python a C ++ que funciona para Python normal, no solo RPython (que es lo que usan shedskin y PyPy).


Si C ++ está disponible para esa plataforma incorporada, se elimina el aspecto , convierte Python en c ++.