Pregunta

Me pregunto si es posible crear un módulo ejecutable desde una secuencia de comandos de Python. Necesito tener el mayor rendimiento y la flexibilidad de las secuencias de comandos de Python, sin necesidad de ejecutar en el entorno de Python. Utilizaría este código para cargar módulos de usuario a pedido para personalizar mi aplicación.

¿Fue útil?

Solución

  • Hay pyrex que compila la fuente de Python como módulos de extensión de python
  • rpython que te permite compilar python con algunas restricciones para varios backends como C, LLVM, .Net etc.
  • También hay shed-skin que traduce python a C ++, pero no puedo decir si es bueno .
  • PyPy implementa un compilador JIT que intenta optimizar el tiempo de ejecución mediante traducir partes de lo que se está ejecutando en tiempo de ejecución al código de máquina, si escribe para el intérprete de PyPy, podría ser una ruta viable.
  • El mismo autor que está trabajando en JIT en PyPy escribió psyco que optimiza python en el intérprete de CPython .

Otros consejos

Puedes usar algo como py2exe para compilar tu script de Python en un exe, o congelar para un binario de Linux.

vea: ¿Cómo puedo crear una aplicación de GUI multiplataforma ejecutable directamente usando Python?

He tenido mucho éxito al usar Cython , que se basa en Pyrex y se extiende a él:

  

Cython es un lenguaje que hace   Escribiendo extensiones en C para Python.   Lenguaje tan fácil como el propio Python.   Cython se basa en el conocido   Pyrex, pero soporta más vanguardia.   Funcionalidad y optimizaciones.

     

El lenguaje Cython está muy cerca de   El lenguaje Python, pero Cython   además soporta llamadas C   Funciones y declaración de tipos C en   Variables y atributos de clase. Esta   permite al compilador generar muy   Código C eficiente del código Cython.

     

Esto hace que Cython sea el lenguaje ideal   para envolver bibliotecas externas de C,   y para los módulos C rápidos que aceleran   la ejecución del código Python.

Creo que puedes usar jython para compilar Python a Java bytecode, y luego compilarlo con GCJ.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top