¿Cómo ocultar la ventana de la consola en python?

Estoy escribiendo un bot IRC en Python.

Deseo hacer binarios independientes para Linux y Windows del mismo. Y sobre todo me gustaría que cuando el bot se inicia, la ventana de la consola debe ocultar y el usuario no debe ser capaz de ver la ventana.

¿Qué puedo hacer para eso?

Simplemente guárdelo con una extensión .pyw. Esto evitará que se abra la ventana de la consola.

En los sistemas Windows, no existe la noción de "modo ejecutable". El instalador de Python asocia automáticamente los archivos .py con python.exe de modo que un doble clic sobre un archivo Python lo ejecutará como un script. La extensión también puede ser .pyw, en cuyo caso se suprime la ventana de consola que aparece normalmente.

Explicación al final de la sección 2.2.2

Comentarios (2)

En linux, simplemente ejecútalo, no hay problema. En Windows, debe utilizar el ejecutable pythonw.

Actualizar

Vale, si he entendido bien la pregunta en los comentarios, ¿preguntas cómo hacer que la ventana de comandos en la que has iniciado el bot desde la línea de comandos desaparezca después?

  • UNIX (Linux)

$ nohup mypythonprog &

  • Windows

C:/> start pythonw mypythonprog

Creo que es correcto. En cualquier caso, ahora puedes cerrar el terminal.

Comentarios (8)

En sistemas Unix (incluidos Linux, macOS y BSD)

Usa nohup mypythonprog &, y podrás cerrar la ventana de terminal sin interrumpir el proceso. También puedes ejecutar exit si estás ejecutando en la nube y no quieres dejar un proceso shell colgado.

En sistemas Windows

Guarda el programa con extensión .pyw y ahora se abrirá con pythonw.exe. No hay ventana shell.

Por ejemplo, si tienes foo.py, necesitas renombrarlo a foo.pyw.

Comentarios (0)