La siguiente receta fue hecha utilizando:

Ingredientes:

Opcional:

Instalando Python

Para instalar el MSI de Python para Windows se usa:

$ wine msiexec /i python-2.5.1.msi

Luego instale las dependencias de su programa.

Por ejemplo, para instalar pygame:

$ wine pygame-1.7.1release.win32-py2.5.exe

O doble clic sobre el icono del programa.

Es importante decirle que python haga los .pyc, cuando sea preguntado por el instalador.

$ cd directorio_del_modulo
$ wine ~/.wine/drive_c/Python25/python.exe -m modulo.py

Es importante hacer notar que aunque alguna caracter铆stica del programa puede NO funcionar en Wine, como por ejemplo pygame, igualmente puede "compilarse" (empaquetarse) correctamente.

Pyinstaller

Pyinstaller no se instala, como py2exe. Sin que se descomprime en un directorio. Se necesita un directorio por cada versi贸n de Python que uno quiera usar con Pyinstaller.

Para configurar Pyinstaller siga las instrucciones del manual.

Lo que no es claro en el manual es como crear los ejecutables. La explicaci贸n es complicada y retorcida, sin embargo es muy sencillo. Ejecute algo como:

$ cd Pyinstaller-1.3
$ wine c:\\Python25\\python.exe Makespec.py --noconsole --out=c:\\miproyecto\\Pyinstallerdist c:\\miproyecto\\principal.py

Esto crea un archivo principal.spec en el directorio c:\miproyecto\Pyinstallerdist

El archivo .spec se hace solo una vez, en general no es necesario cambiarlo.

Para automatizar la compilaci贸n primero borramos lo que este hecho de antes, esto hace m谩s lento el empaquetamiento, pero evitamos el riesgo de que se empaqueten cosas viejas con las nuevas. Especialmente si las modificaciones hechas son muy peque帽as.

$ rm ~/.wine/drive_c/miproyecto/Pyinstallerdist/buildmiproyecto/*.*
$ rm ~/.wine/drive_c/miproyecto/Pyinstallerdist/distmiproyecto/principal.exe

Luego creamos el ejecutable.

$ cd Pyinstaller-1.3
$ wine ~/.wine/drive_c/Python25/python.exe -O Build.py c:\\miproyecto\\Pyinstallerdist\\principal.spec

A diferencia de py2exe, pyinstaller no copia autom谩ticamente el archivo w9xpopen.exe as铆 que lo copiamos:

$ cp ~/.wine/drive_c/Python25/w9xpopen.exe ~/.wine/drive_c/miproyecto/Pyinstallerdist/distprincipal/

Esto solo es necesario hacerlo una vez.

Inno Setup Compiler

Inno Setup Compiler crea instaladores para Windows, funciona perfectamente bajo Linux con Wine. Es una aplicaci贸n sumamente f谩cil de usar, y tiene un asistente muy bueno. Por lo que no tiene sentido comentarla, sin embargo hay un truco que merece la pena.

Para automatizar la creaci贸n del instalador de nuestra aplicaci贸n podemos ejecutar:

$ wine ~/.wine/drive_c/Archivos\ de\ programa/Inno\ Setup\ 5/ISCC.exe /Q "c:\miproyecto\iss\principal.iss"

Autom谩tizando la creaci贸n del instalador

Como se dar谩n cuenta, todas estas instrucciones de linea de comando se pueden colocar en un archivo de Bash, y hacer que todo el proceso de empaquetado quede totalmente automatizado.

rm ~/.wine/drive_c/miproyecto/CDs/Nuevasideas/*.*

cd Pyinstaller-1.3
rm ~/.wine/drive_c/miproyecto/Pyinstallerdist/buildprincipal/*.*
rm ~/.wine/drive_c/miproyecto/Pyinstallerdist/distprincipal/principal.exe

wine ~/.wine/drive_c/Python25/python.exe -O Build.py c:\\miproyecto\\Pyinstallerdist\\principal.spec

wine ~/.wine/drive_c/Archivos\ de\ programa/Inno\ Setup\ 5/ISCC.exe /Q "c:\miproyecto\iss\Nuevasideas.iss"

cp ~/.wine/drive_c/miproyecto/principal.py ~/.wine/drive_c/miproyecto/CDs/Nuevasideas/Linux/bin
cp ~/.wine/drive_c/miproyecto/mimodulo.py ~/.wine/drive_c/miproyecto/CDs/Nuevasideas/Linux/bin

cd ~/.wine/drive_c/miproyecto/CDs/Nuevasideas/
tar -cf Linux-Nuevasideas.tar Linux/
bzip2 Linux-Nuevasideas.tar