抑制消息:“python.exe已停止工作”

时间:2013-06-07 15:22:16

标签: windows python-2.7

我在Windows for Server(2 Xeon 2.13 Ghz处理器)上运行带有ArcGIS Desktop 10.1的Python 2.7。

当python崩溃时,是否可以禁止或自动关闭Windows中显示“python.exe已停止工作”的对话框?我有一个连续运行的多处理脚本,有时会因为未知原因而崩溃(正在处理)。当我单击关闭崩溃报告窗口时,脚本将重新启动,一切正常。我希望这种情况能够自动发生,直到我能找到导致崩溃的原因。

非常感谢! 道格

3 个答案:

答案 0 :(得分:3)

禁用此处的Windows调试器对话框的步骤:

http://msdn.microsoft.com/en-us/library/windows/desktop/bb204634(v=vs.85).aspx

这会阻止调试对话框,如果python崩溃,需要用户单击[Debug]或[Cancel]。

但是,现在有另一个Windows对话框显示“python.exe已停止工作。请关闭程序”按钮[关闭程序]。啧!

答案 1 :(得分:1)

您引用的对话框是Windows错误报告的一部分。

确切的方法因Windows版本而异(Windows 7说明here,Google会很乐意为其他版本提供...),但如果您禁用Windows的此功能,您的崩溃速度会快得多( !)。

答案 2 :(得分:0)

这是一个简单的烦人的bug。您可以尝试避免使用导致崩溃的步骤,但是当用于处理长数据列表时,它通常会在不同的工具下发生。 我找到的唯一解决方法是让我的脚本在进入磁盘的过程中保存其进度,因此如果重新启动进程,它就会知道从何处进行拾取。 如果您通过更改注册表(请参见下文)禁用Windows调试器消息,则可以在cmd.exe中重复执行该脚本,直到完成整个批处理,而不必每次都手动关闭该过程。

我知道这是一个糟糕的解决方法,但是有一个python库从python解释器中删除是很常见的。

DWORD HKLM or HKCU\Software\Microsoft\Windows\Windows Error Reporting\DontShowUI = "1"
DWORD HKLM or HKCU\Software\Microsoft\Windows\Windows Error Reporting\Disabled = "1"