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.
En linux, simplemente ejecútalo, no hay problema. En Windows, debe utilizar el ejecutable pythonw.
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?
$ nohup mypythonprog &
C:/> start pythonw mypythonprog
Creo que es correcto. En cualquier caso, ahora puedes cerrar el terminal.
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.
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
.