2010-09-08 23 views
7

Tengo un script de Python que se basa en un par de módulos. Específicamente pexpect y pyinoitify. Sé que puede compilar una secuencia de comandos python en .exe en Windows, pero ¿hay algo relativamente equivalente en Linux? No me importa que sea un binario, solo me gustaría poder distribuir mi script sin requerir la instalación por separado de pexpect y pyinotify. ¿Es eso posible/vale la pena?compilar el script de Python en Linux

Respuesta

6

cx_Freeze es una forma de plataforma cruzada para "congelar" un script de Python en una forma binaria independiente. De acuerdo con su sitio:

cx_Freeze es un conjunto de secuencias de comandos y módulos para la congelación de los scripts de Python en ejecutables casi de la misma manera que py2exe y py2app hacer. A diferencia de estas dos herramientas, cx_Freeze es una plataforma cruzada y debería funcionar en cualquier plataforma en la que Python trabaje. Requiere Python 2.3 o superior desde que hace uso de la instalación de importación de zip que se introdujo en esa versión .

1

En general, si la primera línea es

#!/usr/bin/env python 

y el archivo ha sido ajustada en el modo de "x" (chmod +x yourfile.py)

Entonces es ejecutable. No se requiere compilación.

Y sí, la gente tiene que instalar las cosas de las que depende. Es (a) más simple y (b) menos sorprendente si realmente hacen la instalación, por lo que saben lo que está sucediendo realmente.

+2

La cuestión es sobre la distribución de la secuencia de comandos junto con sus dependencias, no solo para ejecutarla. – katrielalex

0

En Linux, trate de evitar tales cosas. La mayoría de los administradores de paquetes manejan las dependencias bastante bien, simplemente distribuya su script y diga qué dependencias necesita.

+1

¿Qué tiene que ver un administrador de paquetes con los módulos de Python? – Falmarri

+0

Distribuya su módulo como un paquete y declare una dependencia en los otros paquetes de módulos que necesita. Problema resuelto (aunque no portátil). – tripleee

Cuestiones relacionadas