2011-10-07 66 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()