【发布时间】:2012-09-10 00:44:19
【问题描述】:
我遇到了 python 解释器的问题 - 它在脚本执行后立即关闭。我正在尝试学习 pygtk;我在教程之后写了“hello world”,我能看到的只是两个窗口的快速闪现,一个解释器和一个 gtk。我尝试从 command.com 运行脚本,而不是通过双击来运行 - 没有多大帮助。
在较旧的 Windows 中,我只需选中相应选项卡上的复选框,但在这个令人讨厌的眼睛糖果上我该怎么做呢?
【问题讨论】:
我遇到了 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 之后的部分确保某些代码在两种情况下都会执行(有异常和无异常)。除非您手动关闭计算机;)
您也可以使用 input(),而不是 time.sleep,正如 Mark Lutz 在他的“Learning Python. 4th Edition”一书中所建议的那样。
【讨论】:
如果您从命令窗口运行脚本,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)
这将等待按下任何键
【讨论】: