Descripci贸n

En esta receta se muestra como:

  • Crear un ejecutable (.EXE) nativo para Windows (que no requiera tener Python instalado)

  • Generar un archivo autoextraible similar a un instalador (pero m谩s simple)

Ver adjuntos:

  • : aplicaci贸n de ejemplo

  • : script de "compilaci贸n" para py2exe

  • : instalador autoextraible producido con esta receta

Requerimientos:

Ejemplo

Como ejemplo tomamos una aplicaci贸n simple hola.py:

# -*- coding: iso-8859-1 -*-

print "hola mundo"

"Compilando" Python con Py2Exe

Py2Exe empaqueta los archivos necesarios para ejecutar la aplicaci贸n sin necesitad de instalar Python ni sus dependencias.

Para crear el ejecutable es necesario crear un script de setup que extiende las utilidades de distribuci贸n de python (DistUtils), setup.py:

from distutils.core import setup
import py2exe

setup(console=['hola.py'])

Luego en la carpeta de la aplicaci贸n, por l铆nea de comandos, ejecutamos este script:

python setup.py py2exe

Con lo que se generar谩 una carpeta dist con los siguientes archivos:

  • hola.exe: ejecutable

  • python25.dll: runtime de python

  • library.zip: librerias empaquetadas

  • y varios archivos m谩s dependiendo de la versi贸n y dependencias instaladas

Este directorio se puede comprimir en un zip y enviar, ya que es todo lo que se necesita para ejecutar la aplicaci贸n.

Nota: ver la salida de Py2Exe ya que algunas librerias del sistema operativo no pueden ser distribuidas y deben estar instaladas en la m谩quina destino.

Creando un instalador simple con 7-Zip

Con 7-zip se puede crear un 煤nico archivo comprimido autoextraible (ejecutable), con una muy buena tasa de compresi贸n y de manera muy simple.

Para ello, ejecutar 7-Zip en la linea de comandos sobre la carpeta de la aplicaci贸n:

7z.exe a -sfx setup.exe dist

Con esto nos crear谩 un archivo setup.exe que al ejecutarlo descomprimir谩 autom谩ticamente la carpeta de nuestra aplicaci贸n. Este archivo contiene todo lo necesario para ejecutar la aplicaci贸n.

Este ejemplo usa la l铆nea de comando, pero tambi茅n se puede usar la interfase visual integrada al explorador de windows de 7-Zip (click derecho sobre la carpeta dist, en el men煤 contextual elejir 7-zip, a帽adir al archivo, y tildar opci贸n "Crear archivo SFX")

Con 7- Zip tambi茅n es posible:

  • Agregar un autoextractor gr谩fico (ventana m谩s amigable)

  • Modificar los mensajes y solicitar confirmaci贸n para extraer los archivos (mediante archivos de configuraci贸n)

  • Ejecutar un programa luego de extraer los archivos

  • Ejecutar un instalador propio (pero tiene que estar hecho en C)

  • etc.

Autor / Autores:

MarianoReingart