2

在 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(),但不适用于语法错误。有没有更好的办法?

4

2 回答 2

4

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

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

于 2012-04-11T19:29:23.330 回答
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如果程序以未捕获的异常终止,将打开一个调试器。

于 2012-04-11T19:30:47.690 回答