3

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

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

非常感谢!道格

4

3 回答 3

3

禁用 Windows 调试器对话框的过程可在此处找到:

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

这可以防止在 python 崩溃时需要用户单击 [Debug] 或 [Cancel] 的调试对话框。

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

于 2013-06-19T19:15:30.390 回答
1

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

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

于 2013-06-07T15:28:24.420 回答
0

这只是一个 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"
于 2015-11-06T22:36:46.080 回答