8

Windows版のPythonを使用しています。私は Pyside を使用した Python スクリプトを持っています (何も複雑ではなく、一種の「Hello World」です)。

スクリプト ファイルをクリックするか、コマンド ラインから起動すると、完全に実行され、GUI が表示されます。

ただし、スクリプトがテキスト ターミナル (cmd.exe、cygwin など) から起動される場合、GUI を使用することは避けたいと思います。GUI 出力またはテキスト出力が必要かどうかを自動的に認識する一種のスクリプト。

それを行う簡単で簡単な方法はありますか?Python の Windows バージョン( Cygwin パッケージに付属するものではありません) でそれを実行できるようにしたいと考えています。

明白な方法は、テキスト ターミナルからスクリプトを起動するときに一種の「--no-gui」パラメーターを追加することですが、Python (または一部の Python ライブラリ) が既にそのためのツールを提供しているのだろうかと思います。

さらに、このコンピューターには SSH サーバー (Cygwin ベース) があり、離れた場所からスクリプトを実行できますが、(もちろん) GUI は表示されず、エラー メッセージも表示されません。Windows のグラフィカル サポートがないためにスクリプトが失敗したのか、それともスクリプトの出力をテキスト ターミナルに適合させる必要があるのか​​を知ることは非常に興味深いケースです。

4

1 に答える 1

2

ファイルを.pyファイルまたは.pywファイルとして実行できることを知っています。2番目のオプションはGUIアプリケーションに使用され、コンソールウィンドウを開きません。これらを2つのケースに区別するために、のisattyメソッドを確認できますsys.stdout

import sys
if sys.stdout.isatty():
    # .py file is running, with console window
    pass
else:
    # .pyw file is running, no console
    pass

編集

  • Linuxボックスでputty+sshを使用して実行しようとしました。Trueが返されます。
  • Windowsボックスでmsysbashシェルを使用しようとしました-True (.pyファイル)を返します
  • cygwinpythonでcygwinbashシェルを使用しようとしました-True(.pyファイル)を返します
  • 残念ながら、パテ+ Windowscygwinsshサーバーを試すことはできません。
于 2012-04-12T07:56:52.343 に答える