ฉันมี ArcGIS 10.1 ที่ทำงานบนระบบ windows ของฉันและฉันยังได้ติดตั้ง Canopy Express Enthought Python รุ่น 32 บิตใหม่
เป็นไปได้หรือไม่ที่จะโหลดและใช้โมดูล Esri ArcPy จาก Canopy
ฉันมี ArcGIS 10.1 ที่ทำงานบนระบบ windows ของฉันและฉันยังได้ติดตั้ง Canopy Express Enthought Python รุ่น 32 บิตใหม่
เป็นไปได้หรือไม่ที่จะโหลดและใช้โมดูล Esri ArcPy จาก Canopy
คำตอบ:
มีวิธีง่าย ๆ ที่ไม่เกี่ยวข้องกับ messing กับ PATH หรือ PYTHONPATH ของระบบของคุณ
การแจกแจงเอน ธ อร์ ธ ไพ ธ อนรวมถึง Canopy x32 นั้นเป็นแบบสแตนด์อโลนและไม่ต้องการอะไรในรีจิสตรีหรือตัวแปรสภาพแวดล้อม ดังนั้นพวกเขาจึงสามารถเล่นได้ดีกับ Python ดิสทริบิวชันอื่น ๆ เช่นที่มาพร้อมกับ ArcGIS 10.1
ในการเข้าถึงโมดูลงูหลาม ArcGIS 10.1 จาก EnAsiat Canopy : สร้างไฟล์ "เส้นทาง" ในไดเรกทอรีผู้ใช้ Canopy ที่ชี้ไปยังโมดูลงูหลาม ArcGIS 10.1 ในระบบของฉันฉันสร้างไฟล์ข้อความที่เรียกว่าarcpy.pth
มี 4 บรรทัดเหล่านี้:
# .pth file for arcpy
C:\ArcGIS\Desktop10.1\bin
C:\ArcGIS\Desktop10.1\arcpy
C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts
และใส่arcpy.pth
ในไดเรกทอรีแพ็คเกจไซต์ไซต์ผู้ใช้ Canopy:
C:\Users\rsignell\AppData\Local\Enthought\Canopy32\User\lib\site-packages
ในการเข้าถึงโมดูล Enthought Canopy จาก ArcGIS 10.1 : สร้างไฟล์ "path" ในโฟลเดอร์ Arc site-packages ที่ชี้ไปที่โมดูล Canopy python ในระบบของฉันฉันสร้างไฟล์ข้อความที่เรียกว่าepd.pth
3 บรรทัดเหล่านี้:
# .pth file for EPD Canopy
C:\Users\rsignell\AppData\Local\Enthought\Canopy32\User\Lib\site-packages
C:\Users\rsignell\AppData\Local\Enthought\Canopy32\System\Lib\site-packages
แล้วใส่epd.pth
ในโฟลเดอร์แพคเกจเว็บไซต์ Arc:
C:\Python27\ArcGIS10.1\Lib\site-packages
นั่นคือทั้งหมดที่ฉันต้องทำ!
อุดมไปด้วย
ปล. ทำงานได้เพราะ Enthought Canopy 1.0 และ ArcGIS10.1 เป็นรุ่น Python (2.7) และ Numpy (1.6.1) รุ่นเดียวกัน ฉันหวังว่าเราจะยังคงมีความเข้ากันได้ต่อไป!
อัปเดต:ฉันเพิ่งลองด้วย Canopy 1.0.3 ซึ่งใช้ Numpy 1.7.1 และยังใช้งานได้แม้ว่า ArcGIS 10.1 จะอยู่ที่ Numpy 1.6.1 เย่! ไชโย
ใช่แล้ว. นี่คือข้อความที่ตัดตอนมาจากคู่มือการติดตั้งภายในที่เพิ่งใช้ทำสิ่งเดียวกันในเครื่องของฉัน (โปรดตรวจสอบให้แน่ใจว่าสิ่งเหล่านี้ใช้กับเครื่องของคุณโดยเฉพาะ):
กำหนดค่าสภาพแวดล้อมสำหรับ EPD
เพิ่ม PATH ใหม่ในตัวแปรผู้ใช้ของคุณ (เพิ่ม epd ลงใน PATH):
(แก้ไขเส้นทางด้านล่างตามเวอร์ชั่นของ EPD หรือ ArcGIS ที่คุณใช้)
PATH=C:\Python27_epd32;C:\Python27_epd32\Scripts;%PATH%
หากติดตั้ง ArcGIS ให้ตั้งค่าตัวแปรสภาพแวดล้อม PYTHONPATH เพื่อให้
ArcGIS สามารถนำเข้าโมดูล EPD และ EPD สามารถนำเข้า ArcPy:
PYTHONPATH=
C:\Python27_epd32\lib\site-packages;
C:\ArcGIS\Desktop10.1\bin;
C:\ArcGIS\Desktop10.1\arcpy;
C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts
หากคุณพบปัญหาเกี่ยวกับ ArcGIS ที่ขัดแย้งกับ EPD คุณสามารถลบ EPD ออกจากสภาพแวดล้อม ArcGIS ได้อย่างง่ายดายโดยลบการอ้างอิงไปยัง EPD ใน PYTHONPATH
ขอสงวนสิทธิ์! ในขณะที่ขั้นตอนด้านล่างใช้งานได้กับฉันในอดีตฉันไม่ใช่คนที่เข้าใจเรื่อง DOS มากและฉันจะรู้สึกดีขึ้นถ้าคุณปรึกษาคนในแผนกไอทีของคุณเพื่อให้แน่ใจว่าฉันไม่ได้ส่งคำแนะนำที่ไม่ดี ด้วยที่กล่าวว่าอ่านต่อ ...
การเพิ่มพา ธ ไปยังตัวแปรสภาพแวดล้อมของคุณนั้นค่อนข้างตรงไปตรงมาโดยใช้คำสั่ง DOS (โปรแกรมทั้งหมด> อุปกรณ์เสริม> พรอมต์คำสั่ง) คุณจะใช้คำสั่งsetx
เพื่อแก้ไขตัวแปรสภาพแวดล้อมของคุณPATH
และอย่างถาวรPYTHONPATH
ที่พรอมต์คำสั่งพิมพ์ " echo %PATH%
"; มันจะพิมพ์สตริงที่เป็นPATH
ตัวแปร มันเป็นแค่ตัวละครยาว ทีนี้ลองใช้PYTHONPATH
ตัวแปรดูว่ามีอะไรอยู่ในนั้น คุณจะสังเกตเห็นแต่ละเส้นทางในตัวแปรเหล่านั้นคั่นด้วยเซมิโคลอน ( ;
) เมื่อเราเพิ่มเส้นทางใหม่ให้กับตัวแปรเหล่านี้เราจะต้องรวมสิ่งเหล่านี้
สิ่งที่คุณจะทำคือบอกคอมพิวเตอร์ว่าคุณต้องการตัวแปรใหม่PATH
และPYTHONPATH
ตัวแปรให้เท่ากับสตริงใหม่ (พา ธ ) (เช่นC:\Python27_epd32\lib\site-packages;C:\ArcGIS\Desktop10.1\bin;
) รวมถึงสิ่งที่เก็บไว้ในตัวแปรแล้ว
คำสั่งที่คุณจะดำเนินการเพื่อตั้งค่าPATH
ตัวแปรของคุณคือ:
setx PATH=C:\Python27_epd32;C:\Python27_epd32\Scripts;%PATH%
(ตรวจสอบให้แน่ใจว่าพา ธ เหล่านี้สามารถใช้ได้กับระบบของคุณ)
คำสั่งที่คุณจะดำเนินการเพื่อตั้งค่าPYTHONPATH
ตัวแปรของคุณคือ:
setx PYTHONPATH=C:\Python27_epd32\lib\site-packages;C:\ArcGIS\Desktop10.1\bin;C:\ArcGIS\Desktop10.1\arcpy;C:\ArcGIS\Desktop10.1\ArcToolbox\Scripts;%PYTHONPATH%
(ตรวจสอบให้แน่ใจว่าพา ธ เหล่านี้สามารถใช้ได้กับระบบของคุณ)
หมายเหตุ:ตรวจสอบให้แน่ใจว่าคุณเพิ่ม " %PATH%
" และ " %PYTHONPATH%
" ในตอนท้ายของคำสั่งที่เกี่ยวข้อง หากคุณไม่ทำเช่นนั้นคุณจะเขียนทับตัวแปรเหล่านั้นด้วยเส้นทางใหม่เท่านั้นและคุณจะสูญเสียเนื้อหาปัจจุบัน