¿Cómo puedo ocultar la ventana de la consola al congelar aplicaciones wxPython con cxFreeze?
cx-freeze (4)
Estoy desarrollando una aplicación de Python usando wxPython y congelandola usando cxFreeze. Todo parece ir bien aparte de este bit siguiente:
Cuando ejecuto el ejecutable creado por cxFreeze, aparece una ventana de consola en blanco. No quiero mostrarlo. ¿Hay alguna manera de que pueda ocultarlo?
Parece que no está documentado en el sitio de cxFreeze y Googling no apareció mucho aparte de algunos problemas similares con Py2Exe.
Gracias.
Opción 1) Use gui2exe para gui2exe con varias opciones.
Opción 2) Modifique su setup.py con el parámetro ''base'' como tal.
GUI2Exe_Target_1 = Executable(
# what to build
script = "rf_spi.py",
initScript = None,
base = ''Win32GUI'', # <-- add this
targetDir = r"dist",
targetName = "rf_spi.exe",
compress = True,
copyDependentFiles = False,
appendScriptToExe = False,
appendScriptToLibrary = False,
icon = r"wireless.ico"
)
Para ventanas:
Tienes que usar una línea como esta (usa carpetas de archivos y nombres según corresponda)
C:/Python/Scripts/cxfreeze C:/Python/Code/yourprogram.py --base-name=Win32GUI --target-dir C:/Python/Dist
Al agregar la --base-name=Win32GUI
, la ventana de la consola no aparecerá.
Si está usando Windows, puede cambiar el nombre de la extensión de su script "principal" (que inicia la aplicación) a .pyw
Esto funcionó en cierta medida pero tiene problemas. Mi programa se ejecuta tanto en modo consola como en modo GUI. Cuando se ejecuta desde la consola con un argumento --console
se ejecuta en un modo de consola. Cuando seguí el siguiente procedimiento, esto ya no funciona y mi programa es solo una aplicación GUI.
El siguiente código fuente proviene de un archivo de muestra en /Python/Lib/site-packages/cx_Freeze/samples/PyQt4/setup.py
. Lección del día. Lea el README.
# A simple setup script to create an executable using PyQt4. This also
# demonstrates the method for creating a Windows executable that does not have
# an associated console.
#
# PyQt4app.py is a very simple type of PyQt4 application
#
# Run the build process by running the command ''python setup.py build''
#
# If everything works well you should find a subdirectory in the build
# subdirectory that contains the files needed to run the application
import sys
from cx_Freeze import setup, Executable
base = None
if sys.platform == "win32":
base = "Win32GUI"
setup(
name = "simple_PyQt4",
version = "0.1",
description = "Sample cx_Freeze PyQt4 script",
executables = [Executable("PyQt4app.py", base = base)])