¿Qué es pyinstaller?
Pyinstaller es una librería y una herramienta de linea de comandos para convertir programas escritos en python a archivos ejecutables.
¿Por que nesecita una interface grafica?
Aunque la terminal o linea de comandos no me asusta para nada, es muy tedioso tener que teclear o navegar entre los directorios con la linea de comandos, ademas, si te equivocas en algun caracter debes revisar todo el chorro de nuevo (y vaya que si se genera un churro muy largo con esta cosa).
Este programa funciona en Windows y en Linux. Para correrlo nesecita las siguientes dependencias: pyinstaller y wxpython.
Este programa fué probado en Python 3.7 con wxpython phoenix.
Debido a que el programa es un tanto extenso, decidí pner el link de descarga al codigo fuente.
Debido a que el programa es un tanto extenso, decidí pner el link de descarga al codigo fuente.
Para crear un executable a partir de un codigo escrito en python se hace lo siguiente:
- Click en el boton "Programa" para elegir el script.
- Opcional, elegir un icono (archivo .ico en windows): marcar la casilla "icono" y click en el boton de enseguida "elegir".
- Elegir la direccion donde se va a generar el ejecutable: click en la casilla "Fichero del ejecutable" y click en el boton de enseguida "elegir".
- Elegir "Un solo archivo", para generar un unico archivo ejecutable que contenga todo lo nesesario para correr (imagenes, videos, audios, iconos, etc). "Un solo directorio" es para generar un ejecutable dentro de un folder, donde deben estar todos los archivos nesesarios para correr el programa generado (imagenes, videos, audios, iconos, etc).
- Si tu script tiene interface grafica, dejatr marcado "GUI sin terminal" para que no muestre la terminal (CMD o linea de comandos en windows) cuando se ejecute. "GUI con terminal" para mostrar la linea de comandos al ejecutarse. "Aplicacion de terminal" es una aplicacion de linea de comandos.
- En la parte de abajo del programa dar click en "agregar" para incluir todos los archivos que quieres que formen parte de la aplicacion (Suponiendo que la opcion "Un solo archivo" esté marcada ). Estos archivos deben ser llamados en el programa de la forma que se indica abajo en el codigo de ejemplo. Esto debido a que, el ejecutable generado descomprime todos los archivos agregados (imagenes, videos, audios, iconos, etc) en un folder temporal. (NOTA: el nombre del folder temporal generado inicia con "_MEI", por si quieres comprobar que si se generó)
En el ejemplo de aqui, se carga una imagen llamada "appicon.png". Se usa "try" y except para poder debugear al momento de crear el script, pero en realidad para generar el ejecutable solo se nesecita la direccion del folder temporal.
import wx
import sys
try:
bundle_dir = sys._MEIPASS + "\\" #<---- Averiguar nombre del folder temporal
except:
bundle_dir = ''
class MyFrame(wx.Frame):
def __init__(self, parent, title = ""):
super(MyFrame, self).__init__(parent, title = title)
self.panel = wx.Panel(self)
#----------------------------------------------------
# generar imagen
#----------------------------------------------------
theBitmap = wx.Bitmap(bundle_dir + "appicon.png")
#---------------------------------------------------
self.bitmap = wx.StaticBitmap(self, bitmap=theBitmap) #<---- Usar el bitmap
if __name__ == "__main__":
app = wx.App(False)
frame = MyFrame(None, "Main Frame")
frame.Show()
app.MainLoop()
EL resaltado de la sintaxis de python, se hiso usando pygments (usando python XD) para generar el codigo HTML.
No hay comentarios.:
Publicar un comentario