Estoy tratando de iniciar una aplicación wxPython que (he convertido a un exe con py2exe) de un proceso que se ejecuta en segundo plano.Llamar a un subproceso sin tener la consola del sistema abierta
El problema es que cuando la aplicación GUI se abre, lo mismo ocurre con una ventana de consola (c: \ windows \ system \ cmd.exe)
tuve un vistazo a this question donde Alex Martelli sugiere establecer el parámetro de creationflags
de Popen
a 0x08000000
pero esto no ha resuelto mi problema.
También me pregunto si hay una forma mejor de ejecutar un proceso en segundo plano, en el momento en que cambié la extensión del script a pyw
y como no tiene una GUI, entonces no está visible. ..
Esta es la línea que llama al subproceso
subprocess.Popen(args="%s"%comPort,bufsize=0,
executable="myFrozen_WxpythonApp.exe",
creationflags=0x08000000, shell=False)
guión py2exe
...
options = {'py2exe': {'compressed': 3,
'optimize': 2,
'excludes': excludes,
'packages': packages,
'dll_excludes': dll_excludes,
'bundle_files': 1,
'dist_dir': 'dist',
'xref': False,
'skip_archive': False,
'ascii': False,
#'packages': packages,
'custom_boot_script': '',
}
}
setup(options=options, windows=["app.pyw"], zipfile=None, data_files=data_files)
Actualización:
Como he explicado en mi respuesta a esta pregunta, el problema estaba en la llamada subprocess.Popen
.
La primera cadena en el parámetro args debe ser el nombre del ejecutable, el nombre del ejecutable puede ser seguido por cualquier comando o información que deba pasarse al subproceso.
Ponga una nueva línea o dos en su bloque de código. – robert
No está relacionado con el subproceso y la ventana de la consola del script principal. Es la ventana de la consola 'WxpythonApp' que aparece (y aún debería aparecer cuando la iniciaste solo). – delnan
@delnan: Ojalá fuera así de simple. El 'parámetro' de windows se configuró al convertir a un exe con 'py2exe' y la ventana de la consola no se abre si ejecuto la aplicación manualmente, es decir, hago doble clic en ella ... – volting