2011-10-07 5 views
2

OS XでブロックするGUIアプリケーションを簡単に作る方法はありますか?CLIから実行したときにPython GUIプログラムが終了するのをやめてください

私は単純なpythonプロットプログラムを持っています。既存のPythonインタラクティブセッションやiPythonの内部からGUIウィンドウを表示すると、それを見ることができます。 CLIから.pyファイルを実行すると、GUIが点滅してすぐに終了します。

これをコマンドラインから実行して、GUIを残しておきたいと思います。

if __name__ == "__main__": 
    import matplotlib 
    from matplotlib import pyplot 
    data = range(1,10) 
    fig = pyplot.plot(data) 
    pyplot.show() 
+1

あなたはどのプラットフォームですか?私はLinux上でこれを実行し、GUIはそのままです。 – Thomas

+0

OS X.あなたは 'python。/ foo.py'を実行していて、それはそのままですか? – mankoff

+1

ええ;素晴らしい解決策ではありませんが、raw_inputや何かを投げ込むとどうなりますか? – Thomas

答えて

3

私がどこか分からないが、対話モードは、何らかの形で有効になっているかのように聞こえます。次のように試してみてください:

def main(): 
    import matplotlib.pyplot as plt 
    data = range(1,10) 
    fig = plt.plot(data) 
    plt.ioff() # turns interactive mode OFF, should make show() blocking 
    plt.show() 


if __name__ == "__main__": 
    main()