일반적으로 Python 디버거 / IDE는 Python 스크립트가 자체와 동일한 프로세스에서 실행되고 있다고 가정하므로 ArcMap.exe에서 실행되는 스크립트를 디버깅하는 것은 적절합니다. 로 디버그하십시오.
지난 몇 년 동안 나에게 매우 효과적 인 방법은 도구를 호출하고 Python IDE (Wing 또는 Pythonwin)의 기본 스크립트로 사용하는 간단한 스크립트를 작성하고 도구의 .py에 중단 점을 설정하는 것입니다. 파일도 같은 IDE 세션에서 열립니다.
그래서 기본적으로 나는 이것을한다 :
- 스크립트 도구에서 작동하지 않는 입력 세트 가져 오기
- 도구를 호출하는 .tbx와 동일한 폴더에서 간단한 .py 파일을여십시오.
- IDE에서 호출자 스크립트 및 스크립트 도구 .py 파일을여십시오.
- 스크립트 도구 파일에서 중단 점 설정
- 발신자 스크립트 실행
그리고 내 발신자 스크립트는 일반적으로 매우 간단합니다.
import os
import arcpy
arcpy.ImportToolbox(os.path.join(os.path.dirname(__file__), 'my.tbx'))
arcpy.MyToolThatIsFailing_myalias("inputs", "that", "don't" "work")
ArcMap에서 실행되는 스크립트를 디버깅하기 위해 winpdb 를 시도했지만 운이 없었습니다. 당신이 그것을 시도하고 그것을 잘 작동 얻을 경우, 결과를 공유하십시오.