programa para instalar hacer ejecutable crear convertir con python distribution

para - ¿Cómo puedo distribuir programas de Python?



py2exe (5)

Mi aplicación se ve así:

main.py windows/ __init__.py mainwindow.py ... model/ __init__.py orders.py ... resources/ image1.png logo.jpg ...

El programa se inicia con main.py. ¿Hay una buena manera de crear una aplicación ''final''? Estoy pensando en algo como py2exe / py2app, pero sin copiar el / los intérpretes / módulos de python en la aplicación donde uno solo tiene un ejecutable.

Eché un vistazo a distutils, pero parece que instala un programa en el directorio de Python, que no es habitual en plataformas que no sean de Linux.

Por el momento solo copio toda la carpeta de origen en la máquina de destino y creo un alias para main.pyw en Windows. Algunos inconvenientes:

  • El icono es el ícono de python predeterminado.
  • Tengo que crear el alias manualmente.
  • En mi directorio fuente hay muchos archivos adicionales como la carpeta de control de origen.
  • Debo cambiar el nombre de main.py a main.pyw manualmente.
  • Sería bueno si solo los archivos `.pyo * están en la máquina de destino. No hay una razón real para eso, simplemente no me gusta tener archivos innecesarios.

¿Cómo se puede crear una buena distribución automatizada?

  • ¿para ventanas? (Esa es la única plataforma que tengo que apoyar en este momento).
  • ¿para Mac?
  • para Linux?

La forma normal de distribuir aplicaciones Python es con distutils . Está hecho para distribuir módulos tipo python de tipo biblioteca y aplicaciones Python, aunque no sé cómo funciona en Windows. En Windows tendría que instalar Python por separado si usa distutils, en cualquier caso.

Probablemente te recomiendo que lo distribuyas con disutils para Linux y Py2exe o algo similar para Windows. Para OS XI no sé. Si se trata de una aplicación de usuario final, es probable que desee un tipo de imagen de disco, no sé cómo hacerlo. Pero lea esta publicación para obtener más información sobre la experiencia del usuario. Para una aplicación hecha para programadores, probablemente también esté bien con una instalación tipo distutils en OS X.



Recomiendo encarecidamente Pyinstaller , que es compatible con todas las plataformas principales sin problemas. Al igual que py2exe y py2app, produce un ejecutable estándar en Windows y un paquete de aplicaciones en OS X, pero tiene el beneficio de hacer un trabajo fantástico de auto-resolución de dependencias comunes y de incluirlas sin ajustes de configuración adicionales.

También tenga en cuenta que si está implementando Python 2.6 en Windows, debe aplicar este parche a la troncal de Pyinstaller.

Usted indicó que no necesita un instalador, pero Inno Setup es una opción fácil de usar y rápida de configurar para la plataforma de Windows.


Si está distribuyendo en Windows, use un instalador para instalar todos los archivos relevantes / interpeter lo que sea necesario. Distribuir un setup.exe. Esa es la mejor manera en Windows. De lo contrario, los usuarios se quejarán.


squeeze.py Fredrik Lundh puede crear un solo archivo que no contenga el intérprete de Python, sino que contiene bytecode. Con los argumentos correctos, puede incluir otros archivos, módulos, etc. en el archivo de resultados. Lo utilicé con éxito en un proyecto. ¡El programa resultante se ejecutó en OS X, Linux y Windows sin ningún problema!

PD : Cada máquina necesita tener un intérprete de Python que sea compatible con el bytecode generado por squeeze.py. Puede generar diferentes versiones de código de bytes para diferentes versiones de Python, si es necesario (solo ejecute squeeze.py con la versión correcta de Python).