Convertir Python en Servicio: Ejecutar Scripts como Servicio de Windows
A muchas personas, incluido yo, nos gusta Python para automatizar tareas y crear APIs para utilidades de terceros. Pero desafortunadamente, arrastrar la biblioteca pywin32 solo para convertir Python en un Servicio no es lo ideal, especialmente cuando pywin32 por alguna razón entra en conflicto con un proyecto que no escribimos nosotros mismos.
Existen un par de buenas utilidades que resuelven este problema:
- NSSM
- WinSW.
Pero cuando se necesita fiabilidad y despliegue rápido de scripts, pueden ser difíciles de usar. Por estas razones, hoy les hablaré sobre EXE to Service, que apunta a una conversión en tres clics y fiabilidad.
Cómo Convertir Python en un Servicio de Windows
Paso 1: Abrir EXE to Service
Después de instalar EXE to Service, aparecerá un acceso directo en su escritorio.
La interfaz gráfica está destinada únicamente a simplificar la creación de servicios. Si está ejecutando Windows Server sin interfaz gráfica, tiene dos opciones:
- Crear el servicio en un PC normal y luego transferirlo al servidor.
- Ejecutar EXE to Service directamente en el servidor usando la línea de comandos.
Paso 2: Crear un Nuevo Servicio
EXE to Service ya incluye un ejemplo listo de Python a Servicio.
Simplemente haga clic en el botón "Crear desde ejemplo".

Paso 3: Establecer la Ruta a los Scripts de Python
En la ventana que aparece, debe especificar las rutas correctas:
- Ruta al archivo ejecutable Python.exe:Por defecto (específico del usuario):
C:\Users\<Su_nombre_de_usuario>\AppData\Local\Programs\Python\Python<versión>\ - Directorio de Trabajo:Especifique la carpeta donde se encuentra su archivo de script.
- Argumentos:
C:\Ruta\A\Su\Script.py

Paso 4: Guardar e Iniciar el Servicio
Haga clic en "Crear Servicio" para crear un servicio de Windows.
Si desea que el servicio se inicie inmediatamente en esta computadora, haga clic en "Iniciar".
Después de esto, Python:
- Se iniciará como un servicio de Windows
- Se iniciará automáticamente con el sistema
- Será gestionable a través del Administrador de Servicios de Windows (
services.msc)
En artículos futuros, explicaré cómo crear notificaciones y alertas para situaciones críticas en Python cuando tenga fugas de memoria y CPU.
Conclusión
Python fue desarrollado originalmente como un lenguaje de alto nivel y no está destinado a ejecutarse en servicios de Windows, pero herramientas como EXE to Service resuelven este problema de manera limpia. Envuelva su script .py en un shell, y se ejecutará al arrancar el sistema, persistirá después del cierre de sesión y se integrará con services.msc, sin necesidad de soluciones complicadas.