Deshacerse de la salida de la consola al congelar progtwigs de Python usando Pyinstaller

Recientemente he escrito un progtwig bastante simple para mi abuelo que usa Python con GUI de Tkinter, y funciona a la perfección para lo que lo usará. Sin embargo, existe, por supuesto, la ventana de salida de la consola fea. Me deshice de él con éxito simplemente cambiando la extensión del archivo de .py a .pyw. Cuando lo congele usando PyInstaller, ¡reaparece nuevamente! ¿Hay alguna manera de arreglar esto?

Gracias por adelantado.

Si desea ocultar la ventana de la consola, aquí está la documentación: Así es como usa la opción --noconsole

 python pyinstaller.py --noconsole yourscript.py 

Si necesita ayuda para usar el progtwig de instalación de pyinstaller para llegar al punto en el que necesita usar la opción --noconsole , aquí encontrará un sencillo tutorial para llegar allí.

Solo agrega la bandera --noconsole :

 $ python pyinstaller.py --noconsole yourprogram.py 

Es posible que también desee utilizar --onefile , que crea un único archivo .exe lugar de una carpeta.

Esta es una de las primeras cosas que surgen en la búsqueda de esta información, así que me gustaría agregar lo que encontré para la versión 3.2 de pyinstaller. Si ya has empaquetado tu script ejecutando

 pyinstaller --onefile your_script.py 

o similar, puede editar el archivo your_script.spec para deshacerse de la consola.

  exe = EXE(pyz, a.scripts, a.binaries, a.zipfiles, a.datas, name='main', debug=False, strip=False, upx=True, console=True ) 

Simplemente cambia el valor de la consola a Falso. Entonces corre:

 pyinstaller your_script.spec 

Además, si realiza cambios en su código, ejecute el comando anterior para que queden reflejados en su_script.exe. He encontrado esto útil para la depuración de varios otros problemas.