Io uso la versione Windows di Python. Ho uno script Python usando Pyside (niente di complicato, una sorta di "ciao mondo").Possiamo sapere se uno script Python viene lanciato da Windows o da un terminale testuale?
Quando faccio clic sul mio file di script o se lo avvio da una riga di comando, si esegue perfettamente e ho una GUI che appare.
Tuttavia, vorrei evitare di avere una GUI se lo script viene lanciato da un terminale testuale (cmd.exe, cygwin, ...). Una specie di script che sa automaticamente se deve avere un output GUI o un output testuale.
C'è un modo facile e semplice per farlo? Voglio essere in grado di farlo con la versione di Python di Windows (e non quella che arriva con i pacchetti Cygwin).
Un modo ovvio sarebbe aggiungere una sorta di parametro "--no-gui" quando avvio lo script da un terminale testuale, ma mi chiedo se Python (o alcune librerie Python) già fornisca strumenti per questo.
Inoltre ho un server SSH (Cygwin-base) su questo computer, posso eseguire lo script a distanza ma nessuna GUI appare (ovviamente) e non ho alcun messaggio di errore. È un caso in cui è molto interessante sapere se lo script è fallito a causa della mancanza del supporto grafico di Windows o se lo script deve adattare il suo output per un terminale testuale.
non la sua un duplicato dal momento che questa domanda è su Windows, ma la discussione in http://stackoverflow.com/questions/3818511/how-to-tell-if-python-script-is-being-run -in-un-terminale-o-via-gui potrebbe essere utile. –
Un'altra discussione è anche qui: http://stackoverflow.com/questions/1285024/how-can-i-check-to-see-if-a-python-script-was-started-interactively – Jiri