如何防止错误后closures命令行窗口

Windows中,当Python脚本退出时,命令提示符窗口closures。 如果它从一个错误中退出,它会在你读任何东西之前closures。 我一直在使用它来保持窗口打开,即使出现错误:

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

它工作,如果main()调用sys.exit() ,但不适用于像语法错误的东西。 有没有更好的办法?

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

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

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

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