กำลังเรียกใช้งานสคริปต์ในหน้าต่าง Python ของ ArcMap?


10

ฉันกำลังเขียน Python ในเท็กซ์เอดิเตอร์ของฉันดังนั้นฉันจึงมีสคริปต์ Python, script.py ฉันยังคงพัฒนามันอยู่ดังนั้นจึงไม่ต้องการใส่ไว้ในกล่องเครื่องมือของฉันและในขณะนี้หมายถึงการคัดลอกและวางจากโปรแกรมแก้ไขข้อความของฉันไปยังหน้าต่าง Python ใน ArcGIS Desktop

มีคำสั่งที่ให้ฉันเรียกมันจากหน้าต่าง ArcGIS Python หรือไม่?

บางสิ่งบางอย่างตาม:

run script.py

ดูเหมือนว่ามีเหตุผลที่ควรมีอยู่ แต่อาจจะไม่


คุณกำลังสร้างสคริปต์ของคุณในการแก้ไขข้อความ? รับ pyscripter ide ด้วยตัวคุณเองมันจะเป็นสิ่งที่ดีที่สุดที่คุณจะทำ!
Hornbydd

คำตอบ:



4

ฉันไม่แน่ใจในระดับประสบการณ์ของคุณ แต่ก่อนที่คุณจะไปไกลเกินไปคุณจะต้องเรียนรู้วิธีปฏิบัติที่ดีที่สุดใน Python มันจะเป็นสำนวนเพิ่มเติมหรือ " Pythonic " เพื่อmodularizeรหัสของคุณลงในฟังก์ชั่น / การเรียน , importโมดูลของคุณและเรียกหนึ่งหรือมากกว่าฟังก์ชั่น / ชั้นเรียน

หากคุณต้องการเปลี่ยนแปลงและทดสอบโมดูลที่นำเข้าแล้วแบบโต้ตอบคุณสามารถใช้reloadฟังก์ชันในตัวได้

ใช้if __name__ == '__main__'เคล็ดลับเพื่อป้องกันขั้นตอนหลักของสคริปต์ของคุณ (ทุกอย่างนอกเหนือจากการนำเข้าการประกาศฟังก์ชัน / คลาสและอาจมีการประกาศตัวแปรระดับโมดูล) จากการทำงานโดยอัตโนมัติเมื่อนำเข้าโมดูลและรันตรรกะนั้นเมื่อรันสคริปต์โดยตรงเช่นจาก พรอมต์คำสั่งหรือผ่าน ArcToolbox

จากนั้นคุณสามารถทดสอบชิ้นส่วนเฉพาะของโมดูลของคุณโดยเพียงแค่เรียกคลาส / ฟังก์ชั่นที่เกี่ยวข้อง


1
จากนั้นคุณต้องจัดการกับreload()ฟังก์ชั่นและความน่ารังเกียจทั้งหมดของโมดูลแคชและใน Python หากคุณเขียนสคริปต์ขนาดเล็กซ้ำ ๆ กันในเท็กซ์เอดิเตอร์นี่เป็นสิ่งที่เกินความจริงเล็กน้อย
Jason Scheirer

1
ฉันไม่ได้มีปัญหาใด ๆ กับreloadตราบเท่าที่ฉันหลีกเลี่ยงการใช้หรือfrom module import x from module import *
blah238
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.