如何防止命令行窗口在错误后关闭

时间:2012-04-11 19:26:21

标签: python windows command-prompt

在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(),则无效,但不适用于语法错误等问题。还有更好的方法吗?

2 个答案:

答案 0 :(得分:4)

您在大多数情况下都会使用(调用os._exit()的线程是一个值得注意的例外)。

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

答案 1 :(得分:3)

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

@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将打开一个调试器。