【问题标题】:How to stop python interpreter from closing on Windows 7?如何阻止 python 解释器在 Windows 7 上关闭?
【发布时间】:2012-09-10 00:44:19
【问题描述】:

我遇到了 python 解释器的问题 - 它在脚本执行后立即关闭。我正在尝试学习 pygtk;我在教程之后写了“hello world”,我能看到的只是两个窗口的快速闪现,一个解释器和一个 gtk。我尝试从 command.com 运行脚本,而不是通过双击来运行 - 没有多大帮助。

在较旧的 Windows 中,我只需选中相应选项卡上的复选框,但在这个令人讨厌的眼睛糖果上我该怎么做呢?

【问题讨论】:

标签: python windows-7


【解决方案1】:

我对 pygtk 不熟悉,但是如果你在 Windows 下双击一个 Python 程序,并且程序运行然后窗口关闭,那么你可以通过调用来尝试这种简单的方法

 raw_input() # with Python 2.x

 input() # with Python 3.x

在脚本的末尾。这将导致程序停止并等待输入(并保持窗口打开),如果您按下键,程序将结束(并且您的窗口将关闭)。

【讨论】:

  • +1 这应该可以工作,除非应用程序抛出错误(这里似乎就是这种情况)。
【解决方案2】:

通常会发生一些异常,即使您在最后放置了一些睡眠功能(或其他等待用户的语句),它也可能会失败。

要克服这个问题,只需使用异常捕获及其在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”一书中所建议的那样。

【讨论】:

  • (不是downvoter)我认为你需要一种在关闭之前实际打印异常的方法(使用你的方法:如果你把一些东西放在except中,它会抑制输出,如果你不放除了将打印异常,但仅在睡眠之后!
【解决方案3】:

如果您从命令窗口运行脚本,python -i 选项将在脚本完成后保持交互式 Python 会话打开,以便您可以输入 Python 语句进行调试等:

C:\>python -i script.py
>>>

不确定这是否会使 GTK 窗口保持打开状态,这取决于我期望的编程方式。

【讨论】:

    【解决方案4】:

    我建议您在某种编辑器中运行您的代码(几乎所有编辑器都可以:Eclipse、Geany、Spyder、IDLE 等)。这样做的原因是,当程序执行时,您的代码中很可能会在某处出现致命错误。 Python IDE 倾向于保持用于执行代码的窗口即使出现错误也是打开的,因此您可以查看错误回调以供参考。这将告诉您从哪里得到错误,并允许您相应地修复代码。当然,您总是可以将input()time.sleep() 加到最后,希望对您有所帮助,但这取决于您。我建议使用我上面提到的 IDE。

    【讨论】:

    【解决方案5】:
    import subprocess
    print "hello from python"
    
    subprocess.Popen(["pause"], shell=True)
    

    这将等待按下任何键

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-12
      • 1970-01-01
      • 2023-03-11
      • 2011-06-13
      • 1970-01-01
      • 2010-11-15
      • 2011-02-13
      相关资源
      最近更新 更多