[pyar] ¿Existe algo asi como un "compilador" Python?

Javier Marcon javiermarcon en gmail.com
Jue Abr 24 14:14:10 ART 2014


El 24/04/14 13:45, Gilgamezh escribió:
>
> El 2014-04-24 13:19, Roberto Alsina escribió:
>> On 24/04/14 13:17, Claudio Freire wrote:
>>> 2014-04-24 13:00 GMT-03:00 Ariel Palazzesi <arielpalazzesi en gmail.com>:
>>>> Con "grandes" me refiero a aplicaciones para la gestión de
>>>> comercios o cosas
>>>> asi, con decenas o cientos de archivos .py, etc. Yo lo vehia casi
>>>> como un
>>>> lenguaje para hacer pequeños scripts.
>>>>
>>>> Al ver que se utiliza en esos entornos, me surgio la duda de la
>>>> compilacion
>>>> para optimizar la velocidad de ejecución y para proteger el código
>>>> fuente.
>>> Python (casi todas las implementaciones) se compila a bytecode. Es
>>> posible distribuir sólo el bytecode, sin el código fuente, y va a
>>> correr (y de hecho acelera un poquito el startup porque evita tener
>>> que compilar la fuenta a bytecode).
>>>
>>> En términos de protección del código, sin embargo, el bytecode de
>>> python es sencillamente des-compilable. Se pueden obfuscar los
>>> identificadores internos durante la compilación a bytecode (hay
>>> herramientas para eso, que modifican lo que no hace a la interfaz,
>>> como variables locales), pero lo que se gana ahí es poco.
>>>
>>> Es raro que en gestión de comercios tengas código de performance
>>> realmente crítica - todo suele estar limitado por una base de datos o
>>> el input del usuario. Pero si lo tuvieras, tenés algunas opciones. Sin
>>> embargo, empaquetar algo que utilice eso te va a ser más complicado -
>>> lo más sencillo de empaquetar es código puramente python. Eso se hace
>>> sencillo con cx_freeze: http://cx-freeze.sourceforge.net/
>>
>> Pero sacar el python de un exe de cx_freeze es una pavada.
>> En general tratar de esconder el código no es una actividad que tenga
>> un gran beneficio, porque en la gran mayoría de los casos lo que
>> quiere el "chorro" es usar el código, no leerlo.
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.
>
>
>
> Creo que nos perdimos de algo en la pregunta original.
> No hay un compilador, normalmente las maquinas que ejecutan programas
> en python tienen instalado el interprete python y las librerías
> necesita ese programa. Así de simple, creo que el 99% de los casos no
> necesitan otra cosa.
>
> Con respecto a la performance, te recomiendo que busques una charla de
> una pycon (creo que es de Facundobatista) "Python más rápido que C" y
> la semana pasada estuve leyendo este hilo en reddit con cosas re
> interesantes:
>
> http://www.reddit.com/r/Python/comments/23ap65/what_kind_of_project_would_you_not_use_python_for/
>
>
> :D
>
> saludos!
>
> Gilgamezh.
>
Yo uso py2exe, que te permite en forma sencilla generar un exe con lo
que tienetu programa python y las librerias, y asi a los clientes les
doy el exe para que ejecuten en lugar de tener que instalar el python en
cada maquina del cliente.

Salu2,

Javier.


More information about the pyar mailing list