PyInstaller, cuando no funciona el py2exe en PyQt

Iniciado por fortil, Enero 11, 2013, 12:18:04 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Enero 11, 2013, 12:18:04 AM Ultima modificación: Enero 11, 2013, 12:53:16 AM por fortil
Hola a todxs


pues no sé si ya conocen PyInstaller para distribuir aplicaciones en windo$ pero como no encontré nada, acá les traigo algo de lo que he encontrado. Resulta que trataba de convertir un ejecutable con mi antiguo py2exe, pero me dió error debido a las librerías de PyQt4 que usé para la parte gráfica, entonces buscando por ahí encontré esta aplicación de distribución.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

  • Descargar los archivos, los descomprimen en una carpeta.
  • En el directorio utils, de la carpeta de pyinstaller, pueden poner su programa .py (yo prefiero en ese mismo directorio)
  • Abren una ventana de comando en esa carpeta y ejecutan lo siguiente:
    Código: batch

    usuario> python Makespec.py  --icon=ruta_del_icono.ico --version=ruta_del_archivo_version.txt --onefile -w --name=Nombre_del_programa nombre_del_programa.py

    El comando -w es para evitar la consola, el --onefile es para que genere solo archivo (solo el ejecutable)

    El archivo de la version.txt puede ir mas o menos así:
    Código: php

    VSVersionInfo(
      ffi=FixedFileInfo(
        filevers=(0, 0,1, 4),
        prodvers=(0, 0,1, 0),
        mask=0x3f,
        flags=0x0,
        OS=0x40004,
        fileType=0x1,
        subtype=0x0,
        date=(0, 0)
        ),
      kids=[
        StringFileInfo(
          [
          StringTable(
            '040904B0',
            [StringStruct('FileDescription', 'Programa hecho por Fortil'),
            StringStruct('FileVersion', '0.0.1.4'),
            StringStruct('OriginalFilename', 'Hecho por Fortil.exe'),
            StringStruct('ProductName', 'Hecho por Fortil'),
            StringStruct('ProductVersion', '0.0.1.0')])
          ]),
        VarFileInfo([VarStruct('Translation', [1033, 1200])])
      ]
    )


    edito:
    Se me olvidaba que para windo$ necesitan PyWin32, es un poco liado bajarlo así que les dejo el link directamente de donde lo bajé (No tienes permitido ver los links. Registrarse o Entrar a mi cuenta) y el manual para ver mas a fondo (se puede comprimir con UPX, etc..) No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Enero 11, 2013, 12:53:53 AM #2 Ultima modificación: Enero 11, 2013, 12:58:22 AM por fortil
Gracias ANTRAX, mi primer Karma  :'(


PD: cabe decir que no es necesario todo el código que dejé anteriormente, simplemente se puede poner:
Código: php

usuario> python Makespec.py -w --onefile programa.py


Luego se puede cambiar el icono con Resource Hacker (pero si se puede poner de una vez)

y algo interesante es que cuando compilas con py2exe y abres el programa con el Resource Hacker, puedes ver el código del programa, al compilarlo con PyInstaller solamente aparecen los recursos de los iconos, algo muy bueno para ocultar el código.

Junio 28, 2013, 09:28:52 AM #3 Ultima modificación: Junio 28, 2013, 09:30:54 AM por Metadato
Excelente herramienta!! Y en mi opinión es algo mejor que py2exe.

Aun que ahora en la nueva versión el archivo se pone en la carpeta raíz de la herramienta y se ejecuta el No tienes permitido ver los links. Registrarse o Entrar a mi cuenta las funciones son las mismas si no me equivoco,


Saludos!!