2013-06-07 1 views
3

Windows 용 ArcGIS Desktop 10.1 (2 Xeon 2.13 Ghz 프로세서 2) 용 Python 2.7을 실행 중입니다.메시지 표시 안 함 : "python.exe가 작동을 멈췄습니다"

파이썬 충돌시 "python.exe가 작동을 멈췄다"는 대화 상자를 표시하지 않거나 자동으로 닫을 수 있습니까? 연속적으로 실행되는 다중 처리 스크립트를 사용하여 알 수없는 이유로 충돌하는 경우가 있습니다 (그 작업). 충돌 보고서 창을 닫으려면 클릭하면 스크립트가 다시 시작되고 모든 내용이 정상입니다. 충돌을 일으키는 원인을 추적 할 때까지이 작업이 자동으로 수행되기를 바랍니다.

대단히 감사합니다. Doug

+0

내 마음에 가장 쉬운 솔루션은 실행시 오류 (이 경우 스켈치)를 처리 할 스크립트로 스크립트의 실행을 래핑하는 것입니다. 본질적으로 스크립트를 실행할 스크립트; –

+0

"반복적 인"스크립트를 새 콘솔 창에서 하위 프로세스로 실행하는 "기본"스크립트가 있습니다. 하위 프로세스는 다음과 같이 명령 줄에서 python을 호출하여 시작됩니다. cmd = [ 'python', 'repetiveScript.py'] sub = subprocess.call (cmd, creationFlags = subprocess.CREATE_NEW_CONSOLE) –

답변

1

참조하는 대화 상자는 Windows 오류보고의 일부입니다.

정확한 방법은 Windows 버전 (Windows 7 지침 here, Google은 다른 버전을 기꺼이 제공합니다 ...)에서 다르지만이 Windows 기능을 사용 중지하면 충돌이 훨씬 빠르게 발생합니다 (!). Windows 디버거 대화 상자를 사용하지 않도록

+0

이미 파이썬을 제외했습니다. .exe Windows 오류보고에서. Windows 오류보고 대화 상자가 아니라 디버깅 대화 상자입니다. 버튼은 "취소"또는 "디버그"입니다. –

3

절차는 여기에서 찾을 :

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

이것은 [디버그]를 클릭하여 사용자가 필요합니다 경우 또는 파이썬 충돌 [취소]를 디버그 대화 상자를 방지 할 수 있습니다.

그러나 이제는 "python.exe가 작동을 멈췄습니다. 프로그램을 닫으십시오"라는 버튼이 [프로그램 닫기]와 함께 표시됩니다. 쳇!

0

이것은 단순한 arcpy 버그입니다. 크래시의 원인이되는 단계는 사용하지 않아도되지만 긴 데이터 목록을 처리하는 데 사용되면 다른 도구에서 일반적으로 발생합니다. 내가 발견 한 유일한 해결 방법은 내 스크립트가 진행 과정을 디스크에 저장하도록하는 것입니다. 따라서 프로세스를 다시 시작하면 가져올 위치를 알 수 있습니다. 그런 다음 레지스트리를 변경하여 Windows 디버거 메시지를 비활성화하면 (아래 참조) cmd.exe에서 스크립트를 반복적으로 실행할 수 있습니다.이 때마다 매번 수동으로 프로세스를 닫지 않고도 전체 배치를 완료 할 수 있습니다.

나는 이것이 끔찍한 해결 방법이라는 것을 알고있다. 그러나 파이썬 라이브러리가 파이썬 인터프리터를 죽이는 것은 아주 드문 일이다.

DWORD HKLM or HKCU\Software\Microsoft\Windows\Windows Error Reporting\DontShowUI = "1" 
DWORD HKLM or HKCU\Software\Microsoft\Windows\Windows Error Reporting\Disabled = "1" 
관련 문제