ArcMap'te bir python araç kutusu (.pyt) kullanırken, genellikle .pyt dosyasının giriş argümanlarını toplamak ve araçları tanımlamak için yalnızca bir sarıcı olduğu bir deseni izlerim. Destek kodu ayrı birim test edilebilir modüllerde tutulur.
Misal:
import supporting_module
class MyTool(object):
...
def execute(self, parameters, messages):
"""The source code of the tool."""
some_input = parameters[0].valueAsText
some_output = parameters[1].valueAsText
supporting_module.do_something(some_input, some_output)
arcpy.SetParameter(2, some_output)
Bu gerçekten iyi çalışıyor ama geliştirme sırasında sinir bozucu bir sorunla karşılaştım. ArcMap'te .pyt'de sağ tıklayın -> Yenile yalnızca .pyt dosyasının kodunu yeniler. İçe aktarılan modülleri yenilemez, bu yüzden orada bir şey değiştirdiğimde ArcMap'i kapatıp tekrar açmam gerekir. Neyse ki, kodu bağımsız olarak test ettiğim için, bunu bir ton yapmak zorunda değilim, ama yine de büyük bir güçlük. Bunun etrafında bir yol var mı? Biraz ilgili - Python konsolunu tamamen yenilemenin herhangi bir yolu var mı (ayrıca, değişiklikleri de almak için ArcMap'ı kapatmam / yeniden açmam gereken özel bir site paketim var)?
ArcMap 10.2.1 kullanıyorum.