我们能否知道从Windows或文本终端启动Python脚本?

时间:2012-04-12 07:46:14

标签: python windows ssh cygwin

我使用的是Windows版本的Python。我有一个使用Pyside的Python脚本(没什么复杂的,一种“hello world”)。

当我点击我的脚本文件或者从命令行启动它时,它会完美执行,我会出现一个GUI。

但是,如果脚本是从文本终端(cmd.exe,cygwin,...)启动的话,我想避免使用GUI。一种自动知道它应该具有GUI输出还是文本输出的脚本。

有一种简单易行的方法吗?我希望能够使用 Windows版本的Python 不是Cygwin软件包附带的)来实现这一目标。

当我从文本终端启动脚本时,一种显而易见的方法是添加一种“--no-gui”参数,但我不知道Python(或某些Python库)是否已经为此提供了工具。

此外我在这台计算机上有一个SSH服务器(Cygwin-base),我可以远距离执行脚本但是没有GUI出现(当然),我没有错误信息。在这种情况下,由于缺少Windows图形支持或者脚本应该将其输出调整为文本终端而知道脚本是否失败是非常有趣的。

1 个答案:

答案 0 :(得分:1)

我知道您可以将文件作为.py文件或.pyw文件运行。第二个选项用于GUI应用程序,它不会打开控制台窗口。要将这两种情况区分开来,您可以查看isatty的{​​{1}}方法。

sys.stdout

修改

  • 我尝试用linux上的putty + ssh运行它 - 它返回True。
  • 我尝试在Windows框中使用msys bash shell - 它返回True(.py文件)
  • 我尝试使用cygwin bash shell和cygwin python - 它返回True(.py文件)
  • 不幸的是,我没有办法尝试putty + windows cygwin ssh服务器。