Uso la versión de Windows de Python. Tengo un script de Python usando Pyside (nada complicado, una especie de "hola mundo").¿Podemos saber si un script de Python se inicia desde Windows o un terminal de texto?
Cuando hago clic en el archivo de script o si lo inicio desde una línea de comando, se ejecuta perfectamente y aparece una GUI.
Sin embargo, me gustaría evitar tener una GUI si la secuencia de comandos se inicia desde un terminal de texto (cmd.exe, cygwin, ...). Un tipo de secuencia de comandos que automáticamente sabe si debe tener una salida de GUI o una salida de texto.
¿Existe una manera fácil y sencilla de hacerlo? Quiero poder hacer eso con la versión de Windows de Python (que no viene con los paquetes de Cygwin).
Una manera obvia sería agregar un tipo de parámetro "--no-gui" cuando ejecuto el script desde un terminal de texto, pero me pregunto si Python (o algunas bibliotecas de Python) ya proporcionan herramientas para eso.
Además, tengo un servidor SSH (Cygwin-base) en esta computadora, puedo ejecutar la secuencia de comandos a distancia pero no aparece la GUI (por supuesto) y no aparece ningún mensaje de error. Es un caso en el que es muy interesante saber si el script falló debido a la falta de soporte gráfico de Windows o si el script debe adaptar su salida para un terminal de texto.
no su un duplicado ya que esta pregunta se refiere a Windows, pero la discusión en http://stackoverflow.com/questions/3818511/how-to-tell-if-python-script-is-being-run -in-a-terminal-or-via-gui puede ser útil. –
más discusión también está aquí: http://stackoverflow.com/questions/1285024/how-can-i-check-to-see-if-a-python-script-was-started-interactively – Jiri