【问题标题】:How to prevent command line windows from closing after errors如何防止命令行窗口在错误后关闭
【发布时间】:2012-04-11 19:26:21
【问题描述】:

在 Windows 中,当 Python 脚本退出时,命令提示符窗口会关闭。如果它从错误中退出,它会在您阅读任何内容之前关闭。即使出现错误,我也一直在使用它来保持窗口打开:

if __name__ == '__main__':
    try:
        main()
    except BaseException as e:
        print('Error:')
        print(e)
        raise
    finally:
        raw_input('(Press <Enter> to close)')

如果main() 调用sys.exit(),它会起作用,但对于语法错误等情况不起作用。有没有更好的办法?

【问题讨论】:

    标签: python windows command-prompt


    【解决方案1】:

    您所拥有的将在大多数情况下工作(调用os._exit() 的线程是一个值得注意的例外)。

    另一种方法是将 Python 脚本包装在一个批处理文件中,并在调用 Python 解释器后使用 pause 命令。

    【讨论】:

      【解决方案2】:

      我现在正在使用带有此代码的批处理文件

      @echo off
      env\project_env\Scripts\python.exe -mpdb test.py
      pause
      

      env\project_env 是一个 virtualenv 目录,其中包含 test.py 使用的库

      env\project_env\Scripts\python.exe 是一个 python 解释器,它使 virtualenv 能够使用安装在其中的库。

      如果程序以未捕获的异常终止,-mpdb 将打开一个调试器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-28
        • 2020-01-21
        • 2014-03-17
        • 1970-01-01
        • 1970-01-01
        • 2010-10-20
        • 1970-01-01
        • 2010-12-06
        相关资源
        最近更新 更多