Convertir a ejecutable

Chema Cortes pych3m4 en gmail.com
Mie Feb 7 11:16:57 CET 2007


El 7/02/07, Manuel Malo de Molina <manuelmalo en gmail.com> escribió:
> Hola a todos, se que este es un tema a debate a menudo en las listas
> de Python, pero que utilizais para convertir a .exe los programas de
> Python?
>
> A mi me han dejado la persona que comenzo el programa en el que estoy
> trabajando "de herencia" un script de py2exe que si, funciona, pero me
> parece una chapuza integral. El resultado son dos carpetas, 'build' y
> 'dist', con el ejecutable "perdido" entre cientos de archivos en esta
> segunda (mi jefe nunca lo encuentra), que ocupan en total cerca de 100
> mbs para un codigo de unos 300 kbs.

Sólo es necesario que copies el contenido de la carpeta dist. Sólo hay
un ejecutable para buscar. Mira la FAQ:

  http://www.py2exe.org/index.cgi/FAQ


> He intentado mejorarlo, o probar con otros en lugar de py2exe
> (PyInstaller reduce el resultado a 30 mbs, pero luego no arranca),
> pero el problema es que utilizo matplotlib, numpy, scipy, etc... que
> funcionan fatal con esto de convertir a ejecutable. Siempre me
> compila, pero luego no funcionan, no he conseguido avanzar nada en
> este terreno.

En el wiki de py2exe tienes algunos consejos:

  http://www.py2exe.org/index.cgi/MatPlotLib

Sobre todo asegúrate que incluyes el módulo 'pytz' además del
'matplotlib'. También mírate las opciones para el setup.py, como
'bundle_files', para conseguir reducir el número de ficheros a un
fichero .zip comprimido, con lo que reducirás bastante el tamaño. Las
opciones se pueden pasar por línea de comando o dentro del propio
fichero setup:

opts={
      'py2exe':{
           'bundle_files':1
       }
  }


En general, mírate el wiki del py2exe que te explica cómo solucionar
algunos fallos.

  <http://www.py2exe.org/index.cgi/WorkingWithVariousPackagesAndModules>

Y si quieres que tu jefe no se complique tanto, mírate el instalador
Inno (http://www.jrsoftware.org/isinfo.php). Tiene la ventaja
adicional de poder mejor comprimir con bzip2 y 7zip.




Más información sobre la lista de distribución Python-es