我在 Windows for Server(2 Xeon 2.13 Ghz 处理器)上运行 Python 2.7 和 ArcGIS Desktop 10.1。
当 python 崩溃时,是否可以从 Windows 中抑制或自动关闭显示“python.exe 已停止工作”的对话框?我有一个持续运行的多处理脚本,有时会因未知原因崩溃(正在处理)。当我单击关闭崩溃报告窗口时,脚本重新启动并且一切正常。我希望这会自动发生,直到我可以找到导致崩溃的原因。
非常感谢!道格
我在 Windows for Server(2 Xeon 2.13 Ghz 处理器)上运行 Python 2.7 和 ArcGIS Desktop 10.1。
当 python 崩溃时,是否可以从 Windows 中抑制或自动关闭显示“python.exe 已停止工作”的对话框?我有一个持续运行的多处理脚本,有时会因未知原因崩溃(正在处理)。当我单击关闭崩溃报告窗口时,脚本重新启动并且一切正常。我希望这会自动发生,直到我可以找到导致崩溃的原因。
非常感谢!道格
禁用 Windows 调试器对话框的过程可在此处找到:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb204634(v=vs.85).aspx
这可以防止在 python 崩溃时需要用户单击 [Debug] 或 [Cancel] 的调试对话框。
但是,现在出现了另一个 Windows 对话框,显示“python.exe 已停止工作。请关闭程序”,并带有 [关闭程序] 按钮。嘘!
您引用的对话框是 Windows 错误报告的一部分。
确切的方法因 Windows 版本而异(此处为 Windows 7 说明,Google 将很乐意提供其他版本...),但如果您禁用 Windows 的此功能,您的崩溃会发生得更快(!)。
这只是一个 arcpy 错误。您可以尝试避免使用导致崩溃的步骤,但是当用于处理一长串数据时,通常会在不同的工具下发生。我发现的唯一解决方法是让我的脚本将其进度保存到磁盘,这样如果您重新启动该过程,它就会知道从哪里获取。如果您随后通过更改注册表禁用 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"