Saltar al contenido

pythonw.exe o python.exe?

Solución:

Para resumir y complementar las respuestas existentes:

  • python.exe es una aplicación de consola (terminal) para lanzar scripts de tipo CLI.

    • A menos que se ejecute desde una ventana de consola existente, python.exe abre una nueva ventana de consola.
    • Flujos estándar sys.stdin, sys.stdout y sys.stderr están conectado a la ventana de la consola.
    • La ejecución es sincrónico cuando se lanza desde un cmd.exe o ventana de la consola de PowerShell: Vea el primer comentario de eryksun a continuación.

      • Si se creó una nueva ventana de consola, permanece abierta hasta que finaliza el script.
      • Cuando se invoca desde una ventana de consola existente, la solicitud se bloquea hasta que finaliza la secuencia de comandos.
  • pythonw.exe es una aplicación GUI para lanzar guiones GUI / no-UI-at-all.

    • SIN ventana de consola está abierto.
    • La ejecución es asincrónico:
      • Cuando se invoca desde una ventana de consola, el script es simplemente lanzado y el mensaje regresa de inmediato, ya sea que el script aún se esté ejecutando o no.
    • Flujos estándar sys.stdin, sys.stdout y sys.stderr están No disponible.

      • Precaución: A menos que tome pasos adicionales, esto tiene efectos secundarios potencialmente inesperados:

        • Excepciones no controladas hacer que el guión abortar silenciosamente.
        • En Python 2.x, simplemente tratando de usar print() puede hacer que eso suceda (en 3.x, print() simplemente no tiene ningún efecto).
        • Para evitar que desde dentro de su guión, y para obtener más información, consulte esta respuesta mía.
        • Ad hoc, puedes usar redirección de salida:Gracias, @handle.
          pythonw.exe yourScript.pyw 1>stdout.txt 2>stderr.txt

          (de PowerShell:
          cmd /c pythonw.exe yourScript.pyw 1>stdout.txt 2>stderr.txt) para capturar la salida stdout y stderr en archivos.
          Si está seguro de que el uso de print() es la única razón por la que su script falla silenciosamente con pythonw.exe, y no está interesado en la salida estándar, use el comando @ handle de los comentarios:
          pythonw.exe yourScript.pyw 1>NUL 2>&1
          Consideración: Esta técnica de redirección de salida no no trabajar al invocar *.pyw guiones directamente (en lugar de pasar la ruta del archivo de secuencia de comandos a pythonw.exe). Vea el segundo comentario de eryksun y sus seguimientos a continuación.


Usted puede controlar cuál de los ejecutables ejecuta su script de forma predeterminada – como cuando se abre desde Explorer – por elegir la extensión de nombre de archivo correcta:

  • *.py los archivos están asociados (invocados) de forma predeterminada con python.exe
  • *.pyw los archivos están asociados (invocados) de forma predeterminada con pythonw.exe

Si no desea que aparezca una ventana de terminal cuando ejecute su programa, use pythonw.exe;
De lo contrario, use python.exe

Respecto al error de sintaxis: print ahora es una función en 3.x
Entonces usa en su lugar:

print("a")

Vea aquí: http://docs.python.org/using/windows.html

pythonw.exe “Esto suprime la ventana de terminal al inicio”.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *