Thông thường các trình gỡ lỗi / IDE của Python cho rằng tập lệnh Python đang chạy trong cùng một quy trình như vậy, vì vậy việc gỡ lỗi một tập lệnh đang chạy trong ArcMap.exe là đúng - bạn cần có đủ môi trường tập lệnh GP được khởi động trong tập lệnh Python như bạn có thể gỡ lỗi với.
Một phương pháp hoạt động rất tốt đối với tôi trong vài năm qua là viết một tập lệnh đơn giản chỉ cần gọi công cụ và sử dụng nó làm tập lệnh chính của tôi trong Python IDE (Wing hoặc Pythonwin) và đặt các điểm dừng của tôi trong công cụ .py tập tin cũng mở trong cùng một phiên IDE.
Vì vậy, về cơ bản tôi làm điều này:
- Nhận tập hợp các đầu vào không hoạt động trong công cụ tập lệnh của tôi
- Mở tệp .py đơn giản trong cùng thư mục với .tbx gọi công cụ
- Mở tập lệnh người gọi và tập tin .py công cụ tập lệnh trong IDE
- Đặt điểm dừng trong tệp công cụ tập lệnh
- Chạy kịch bản người gọi
Và kịch bản người gọi của tôi thường khá đơn giản:
import os
import arcpy
arcpy.ImportToolbox(os.path.join(os.path.dirname(__file__), 'my.tbx'))
arcpy.MyToolThatIsFailing_myalias("inputs", "that", "don't" "work")
Tôi đã thử dùng winpdb để gỡ lỗi các tập lệnh đang chạy trong ArcMap nhưng tôi chưa bao giờ gặp may mắn. Nếu bạn muốn dùng thử và bạn làm cho nó hoạt động tốt, vui lòng chia sẻ những phát hiện của bạn.