Generar .exe de un script Python que se ejecute en segundo plano al inicio de Windows

En ocasiones necesitamos que un script en Python sea usado por un cliente final, puede ser que este usuario no tenga el intérprete de Python instalado en el sistema o no tenga los conocimientos necesarios para ejecutar el programa desde la terminal o simplemente por comodidad siempre es más fácil hacer doble click en un .exe.

Generar un ejecutable de un script de Python es muy fácil y existen varias librerías capaces de hacerlo, la más famosa es PyInstaller pero deja de sernos útil si usamos librerías que no son del sistema ya que no es capaz de empaquetarlas y el ejecutable no funcionaría. Por eso mismo vamos a hablar de cx_Freeze.

El funcionamiento es más o menos el mismo que PyInstaller, pero la diferencia es que esta sí que permite generar ejecutables que usen librerías de terceros.

Lo primero que tenemos que hacer es instalarla (recomendable hacerlo en el entorno virtual del proyecto con pip):

$ pip install cx_Freeze

Ahora nos vamos a la ruta donde esté nuestro script para generar su ejecutable y ejecutamos el comando:

$ cxfreeze script.py --target-dir dist

Si queremos que se ejecute en segundo plano sin mostar la ventana de la termina, el comando sería el siguiente:

$ cxfreeze script.py --base-name=Win32GUI --target-dir dist

Cuando termine veremos que se ha creado un directorio llamado dist y dentro estará el ejecutable, si nuestro script se llamaba script.py el ejecutable se llamará script.exe. También habrá otros ficheros necesarios para la ejecución:

Configurarlo para que se inicie automáticamente con el sistema

En mi caso, mi programa debe iniciarse automáticamente con el sistema porque tiene que ir buscando contínuamente ficheros en una ruta sin que tenga que intervenir el usuairo. Hacerlo es muy fácil, solo tenemos que pulsar con el botón derecho del ratón sobre el .exe y crearlo como acceso directo en el escritorio:

Ahora desde la ventana ejecutar Tecla Windows+R escribimos: shell:startup

Se nos abrirá una ventana que (si lo hay) contendrá los programas que se ejecutan al inicio de Windows. Movemos ahí el acceso directo que habíamos creado en el escritorio:

Y listo, así de fácil es crear un ejecutable de un script Python que se ejecute al inicio y en segundo plano.

Publicado por Fj Asensi

BigData & MachineLearning Developer | Senior Microsoft Dynamics 365 Business Central Developer

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: