เล่น ArcGIS 10.0 ภายใต้ Virtualenv


12

ฉันกำลังทำงานกับแพคเกจ Python ที่มีส่วนผสมของเครื่องมือบรรทัดคำสั่งและเครื่องมือ ArcToolbox สำหรับการพัฒนาของ Python มันมีประโยชน์มากที่จะใช้ VirtualEnv โดยเฉพาะเมื่อทำงานกับตัวติดตั้ง มีวิธีที่จะให้ ArcMap หรือ ArcCatalog รู้จักเซสชัน VirtualEnv ปัจจุบันใน Python หรือไม่ดังนั้นเมื่อมีการเรียกใช้เครื่องมือแบบกำหนดเองจะใช้เส้นทาง VirtualEnv Python และแพ็คเกจแทนพา ธ และแพ็คเกจ Python เริ่มต้นที่ c: \ Python26 \ ArcGIS10 0.0?

คำตอบ:


11

นั่นไม่ได้สร้างไว้ในแอพพลิเคชั่น แต่ฉันคิดว่าการรันไฟล์แบตช์ที่ตั้งค่า virtualenv ในcmd.exeเซสชั่นแล้วเรียกใช้ arcmap.exe จากกล่อง DOS เดียวกันควรให้ virtualenv ของคุณมากับคุณ ArcMap และเพื่อน ๆจะปรับเปลี่ยนเส้นทางเล็กน้อยที่จะรวมถึงการติดตั้งของและarcgisscriptingarcpy

แก้ไข: คุณจะต้องเรียกสคริปต์เปิดใช้งานอย่างชัดเจนจากภายในหน้าต่าง Python ในแอปเดสก์ท็อปเพื่อให้สิ่งนี้ทำงานได้ หากฉันมี VirtualEnv อยู่c:\Users\jason\myenvฉันจะออกexecfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})จากหน้าต่าง Python ในแอปเดสก์ท็อป ArcGIS เพื่อให้ทำงานได้


ไม่ปรากฏว่าใช้งานได้ ฉันสร้างพื้นที่ทำงาน VirtualEnv เปิดใช้งานจากนั้นติดตั้งแพคเกจที่ฉันต้องการทดสอบภายใน ArcCatalog จนถึงตอนนี้ดีมาก ถ้าฉันเปิด Python shell ภายในเซสชัน VirtualEnv และนำเข้าแพ็คเกจที่ติดตั้งใหม่ - การนำเข้าใช้งานได้ ถ้าฉันเปิดใช้ ArcCatalog แล้วลองเรียกแพ็คเกจเหล่านี้จากสคริปต์กล่องเครื่องมือ - มันไม่ทำงาน ถ้าฉันดู sys.path จากเปลือก Python ภายใน ArcCatalog มันจะแสดงไดเรกทอรี Python เริ่มต้นสำหรับ ArcGIS 10.0 (C: \ Python26 \ ArcGIS10.0)
SagebrushGIS

4
ดูการใช้activate_this.pyสคริปต์ในไดเรกทอรีสคริปต์เดียวกันของ VirtualEnv ของคุณจากหน้าต่าง Python ใน ArcCatalog และเพื่อน ๆ ฉันสามารถเรียกใช้execfile(r'C:\Users\jason\myenv\Scripts\activate_this.py', {'__file__': r'C:\Users\jason\myenv\Scripts\activate_this.py'})และรับ booted VirtualEnv ของฉันจากภายใน ArcMap
Jason Scheirer

1
! น่ากลัว นั่นเป็นการหลอกลวง
SagebrushGIS
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.