我对 python 解释器有这个问题 - 它在脚本执行后立即关闭。我正在尝试学习 pygtk;我在教程之后写了“hello world”,我能看到的只是两个窗口的快速闪现,一个解释器和一个 gtk。我尝试从 command.com 运行脚本,而不是通过双击运行脚本 - 并没有太大帮助。
在较旧的 Windows 中,我只需选中相应选项卡上的复选框,但我该如何在这个令人眼花缭乱的眼睛糖果上做到这一点?
我对 pygtk 不熟悉,但是如果您在 Windows 下双击 Python 程序,并且程序运行然后窗口关闭,那么您可以通过调用来尝试这种简单的方法
raw_input() # with Python 2.x
或者
input() # with Python 3.x
在脚本的末尾。这将导致程序停止并等待输入(并保持窗口打开),如果您按下键,程序将结束(并且您的窗口将关闭)。
通常情况下会发生一些异常,即使您在最后放置了一些睡眠功能(或其他等待用户的语句),它也可能会失败。
为了克服这个问题,只需使用异常捕获及其后的部分finally
:
import time
try:
... (your code goes here) ...
except:
... (some exception handling, if needed) ...
finally:
time.sleep(5) # always sleep 5 seconds before exiting
后面的部分finally
确保在两种情况下(有异常和无异常)都会执行一些代码。除非您手动关闭计算机;)
正如 Mark Lutz 在他的“ Learning Python. 4th Edition ”一书中所建议的那样,time.sleep
你也可以使用.input()
如果您从命令窗口运行脚本,python-i
选项将在脚本完成后保持交互式 Python 会话打开,以便您可以输入 Python 语句进行调试等:
C:\>python -i script.py
>>>
不确定这是否会使 GTK 窗口保持打开状态,这取决于我期望的编程方式。
我建议您在某种编辑器中运行您的代码(几乎任何编辑器都可以:Eclipse、Geany、Spyder、IDLE 等)。这样做的原因是,当程序执行时,您的代码中很可能会在某处出现致命错误。即使出现错误,Python IDE 也倾向于保持用于执行代码的窗口打开,因此您可以查看错误回调以供参考。这将告诉您从哪里得到错误,并允许您相应地修复代码。当然,您总是可以继续前进input()
或time.sleep()
坚持到底并希望有所帮助,但这取决于您。我建议使用我上面提到的 IDE。
import subprocess
print "hello from python"
subprocess.Popen(["pause"], shell=True)
这将等待按下任何键