ArcMap में एक पायथन टूलबॉक्स (.pyt) का उपयोग करते समय, मैं आमतौर पर एक पैटर्न का पालन करता हूं, जहां .pyt फ़ाइल खुद इनपुट तर्कों को इकट्ठा करने और स्वयं को परिभाषित करने के लिए एक आवरण है। सपोर्टिंग कोड अलग यूनिट-टेस्टेबल मॉड्यूल में रखा जाता है।
उदाहरण:
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)
यह वास्तव में अच्छी तरह से काम करता है, लेकिन मैं विकास के दौरान एक निराशाजनक मुद्दे में चला गया हूं। राइट-क्लिक करें -> आर्केप में .pyt पर ताज़ा करें। केवल .pyt फ़ाइल के कोड को ताज़ा करता है। यह आयातित मॉड्यूल्स को रिफ्रेश नहीं करता है, इसलिए जब भी मैं वहां कुछ बदलता हूं, मुझे आर्कप्स को बंद करना और फिर से खोलना होगा। सौभाग्य से, चूंकि मैं स्वतंत्र रूप से कोड का परीक्षण कर रहा हूं, इसलिए मुझे यह एक टन करने की जरूरत नहीं है, लेकिन यह अभी भी एक बड़ी परेशानी है। क्या इसके आसपास कोई रास्ता है? कुछ हद तक संबंधित - क्या पायथन कंसोल को पूरी तरह से रीफ्रेश करने का कोई तरीका है (मेरे पास एक कस्टम साइट-पैकेज है जिसे मुझे आर्कबप्स को भी बंद करना चाहिए या साथ ही परिवर्तनों से खींचने के लिए फिर से खोलना चाहिए)?
मैं ArcMap 10.2.1 का उपयोग कर रहा हूं।