2009-11-06 19 views
46

¿Hay alguna forma de ejecutar una secuencia de comandos de Python en Windows XP sin que aparezca un shell de comandos por un momento? A menudo necesito automatizar WordPerfect (para el trabajo) con Python, e incluso si mi script no tiene salida, si lo ejecuto sin WP un shell vacío aún aparece por un segundo antes de desaparecer. hay alguna forma de prevenir esto? Algún tipo de redirección de salida tal vez?Ejecutar secuencia de comandos de Python sin que aparezca la consola de Windows

Respuesta

77

pythonw.exe ejecutará la secuencia de comandos sin un símbolo del sistema. El problema es que el intérprete de Python, Python.exe, está vinculado con el subsistema de la consola para producir una salida de consola (ya que es el 90% de los casos): pythonw.exe está vinculado al subsistema GUI y Windows no creará una consola ventana de salida para él a menos que pida uno.

This article analiza la programación de la GUI con Python, y también alude a pythonw.exe. También señala útilmente que si los archivos de Python finalizan con .pyw en lugar de .py, el instalador estándar de Windows configurará las asociaciones correctamente y ejecutará su Python en pythonw.exe.

En el caso de que no suena como un problema, pero la confianza en pythonw.exe hace que su aplicación específica de Windows - existen otras soluciones para lograr esto en, por ejemplo, Mac OS X.

+0

¿Hay alguna manera de especificar dentro de python script weather el uso de 'python.exe' o' pythonw.exe'? Por ejemplo, 'def prog_a(): run_as_pythonw() blah blah' contra' def prog_b(): run_as_python() blah blah'. Un modo de cambio a silencio, si se quiere. – p014k

+1

No funciona como usted explicó para usar pythonw.exe para .pyw. ¿Puedes actualizar la respuesta? es 2016 – YumYumYum

17

Si nombre sus archivos con la extensión ".pyw", luego Windows los ejecutará con el intérprete pythonw.exe. Esto no abrirá la consola dos para ejecutar su script.

Cuestiones relacionadas