เมื่อใช้กล่องเครื่องมือหลาม (.pyt) ใน ArcMap โดยทั่วไปแล้วฉันจะทำตามรูปแบบที่ไฟล์. 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 ใน ArcMap รีเฟรชโค้ดของไฟล์. pyt เท่านั้น มันไม่รีเฟรชโมดูลที่นำเข้าดังนั้นฉันต้องปิดและเปิด ArcMap ใหม่ทุกครั้งที่ฉันเปลี่ยนบางสิ่งที่นั่น โชคดีที่ฉันกำลังทดสอบโค้ดอย่างอิสระฉันไม่ต้องทำแบบนี้เลย แต่มันก็ยังเป็นปัญหาที่สำคัญ มีวิธีใดบ้างไหม? ค่อนข้างเกี่ยวข้อง - มีวิธีใดที่จะรีเฟรชคอนโซล Python อย่างสมบูรณ์ (ฉันมีแพ็คเกจไซต์ที่กำหนดเองที่ฉันต้องปิด / เปิด ArcMap อีกครั้งเพื่อดึงการเปลี่ยนแปลงจากเช่นกัน)
ฉันใช้ ArcMap 10.2.1