python - compile - compilar.py linux
¿Es posible compilar Python de forma nativa(más allá del código de byte pyc)? (4)
Me pregunto si es posible crear un módulo ejecutable a partir de un script de Python. Necesito tener el máximo rendimiento y la flexibilidad de la secuencia de comandos de Python, sin necesidad de ejecutar en el entorno de Python. Usaría este código para cargar módulos de usuario a pedido para personalizar mi aplicación.
Creo que puedes usar jython para compilar código byte de python a Java y compilarlo con GCJ.
He tenido mucho éxito al utilizar Cython , que se basa en y se extiende pyrex:
Cython es un lenguaje que hace que escribir extensiones C para el lenguaje Python sea tan fácil como el propio Python. Cython se basa en el conocido Pyrex, pero admite más funciones y optimizaciones de vanguardia.
El lenguaje Cython está muy cerca del lenguaje Python, pero Cython también admite la invocación de funciones C y la declaración de tipos C en variables y atributos de clase. Esto permite que el compilador genere código C muy eficiente a partir del código Cython.
Esto hace que Cython sea el lenguaje ideal para envolverse para bibliotecas C externas, y para módulos C rápidos que aceleran la ejecución del código Python.
Puedes usar algo como py2exe para compilar tu script python en un exe, o Freeze para un binario de Linux.
ver: ¿Cómo puedo crear una aplicación GUI multiplataforma directamente ejecutable usando Python?
- Hay pyrex que compila python como fuente para los módulos de extensión de python
- rpython que le permite compilar python con algunas restricciones a varios backends como C, LLVM, .Net, etc.
- También hay un 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 traduciendo partes de lo que se ejecuta en el tiempo de ejecución al código máquina, si escribe para el intérprete PyPy que podría ser una ruta factible.
- El mismo autor que está trabajando en JIT en PyPy escribió psyco anteriormente que optimiza python en el intérprete de CPython.