Deshacerse de la consola de Python en wxPython bajo Windows [duplicado]
-
19-09-2019 - |
Pregunta
Duplicar posible:
¿Cómo puedo ocultar la ventana de la consola en una aplicación de PyQt se ejecuta en Windows?
¿Cómo deshacerse de la consola que se muestra como la salida estándar al ejecutar programas de Windows en wxPython?
Solución
Otros han sugerido ya de cambiar el nombre a partir del AP a PYW. Si en lugar de referirse a la redirección de salida de paso redirigir = True cuando se crea la clase wx.App.
http://www.wxpython.org/docs /api/wx.App-class.html
La firma de __init__
es
__init__(self, redirect=False, filename=None, useBestVisual=False, clearSigInt=True)
Si define redirect=True
y nombre de archivo diferente de Ninguno, sys.stdout
y sys.stderr
se redirigir a nombre de archivo. Tenga en cuenta que en Windows y Mac redirigir valor predeterminado es True. Si redirect==True and filename is None
, la salida será impreso en una ventana emergente diferente de sus otros marcos.
Esto puede ser muy útil para que durante la depuración se puede seguir lo que está ocurriendo, aunque no saturan la interfaz de usuario con la parte interna de su aplicación en modo de lanzamiento.
Otros consejos
No está familiarizado con wxPython, pero si se invoca el script con pythonw.exe en lugar de python.exe, la ventana de la consola no debe aparecer. Creo que el ahorro de la secuencia de comandos como script.pyw también funciona.
La forma más sencilla de hacer esto:
if __name__ == "__main__":
app = wx.App(0) #<--- or False
frame = MyFrame('My Frame')
frame.Show(True)
app.MainLoop()
Esto imprime en la salida estándar en lugar de la ventana wxPython.
No sé wxPython pero la solución podría ser tan simple como usar pythonw.exe
para ejecutar el programa en lugar de python.exe
.