Genellikle Python hata ayıklayıcıları / IDE'leri, Python betiğinin kendisiyle aynı şekilde çalıştığını varsayar; bu nedenle ArcMap.exe'de çalışan bir betiğin hata ayıklamasını yapmak doğru olmaz - mümkün olduğunca bir Python betiğinde bootstrapped GP betiği ortamı yeterli ile hata ayıkla.
Son birkaç yıldır benim için çok iyi işleyen bir yöntem, aracı sadece çağıran ve Python IDE'deki (Wing veya Pythonwin) ana betiğim olarak kullanıp basit bir komut dosyası yazmak ve takımın kesme noktasını koymak. dosya aynı IDE oturumunda da açılır.
Yani temelde bunu yapıyorum:
- Komut dosyası aracımda çalışmayan giriş kümesini alın
- Basit bir .py dosyasını, aracı çağıran .tbx ile aynı klasörde açın.
- IDE'de arayan betiğini ve betiği aracı .py dosyasını açın
- Komut dosyası aracı dosyasında kesme noktalarını ayarlama
- Arayan komut dosyasını çalıştır
Arayan betiğim genellikle oldukça basittir:
import os
import arcpy
arcpy.ImportToolbox(os.path.join(os.path.dirname(__file__), 'my.tbx'))
arcpy.MyToolThatIsFailing_myalias("inputs", "that", "don't" "work")
ArcMap'te çalışan komut dosyalarında hata ayıklamak için winpdb'yi denedim ama hiç şansım olmadı. Denemek ve iyi çalışmasını istiyorsanız, lütfen bulgularınızı paylaşın.