Aplicaciones con Python
Hola a todos,
Hoy quiero compartir con vosotros 3 métodos diferentes para crear Aplicaciones a partir de Scripts realizados con python, y que pueden dar solución a ejecuciones a demanda desde un ordenador personal que no disponga de paquetes de python instalados.
Para conseguir esto, disponemos de 3 métodos en función de la librería empleada:
1.pyinstaller
2.py2exe
3.cx_freeze
Nos ceñiremos al análisis de la primera de ellas, la cual debe ser tomada como primera opción por varios motivos: el principal, la gran comunidad que la sustenta, con actualizaciones y mejoras, y el segundo de ellos, también obtenido con py2exe porque permite generar un único archivo .exe que ya incorpora todas las relaciones/paquetes/archivos.. necesarios para la ejecución
Los pasos resumidos a seguir son los siguientes:
- Instalar python en pc personal: IMPORTANTE, Realizar dicha descarga desde la página oficial, y no desde microsoft store, ya que por motivos de seguridad podemos tener problemas en descargas de librerías posteriores generando el siguiente error:
raise error(exception.winerror, exception.function, exception.strerror) win32ctypes.pywin32.pywintypes.error: (1920, 'LoadLibraryExW', 'The file cannot be accessed by the system.')
- Instalar las librerías empleadas por nuestro código de python que no vengan incluidas. Esto se realiza desde la consola (cmd):
>> pip install libreria
- Generar archivo .exe: Para este paso, abrimos la consola (cmd) y accedemos al directorio donde disponemos de nuestro archivo python (.py)
>> cd C//USER//.....
Por último, añadimos la siguiente sentencia:
>>pyinstaller --windowed --onefile --icon=nombrearchivo.ico script.py
--windowed permitirá no mostrar la consola desde la que se ejecuta el script (Sería como el ordenador desde el que se ejecuta todo, que sí incluye python, y todas las librerías empleadas)
--onefile nos permite generar un archivo único.
--icon Nos permite añadir un logo a nuestra aplicación, el formato de la imagen empleada, debe ser .ico tal y como se muestra en la sentencia.
Jose