ปัญหาการนำเข้า arcpy ใน Python IDLE


9

ฉันต้องการใช้ arcpy ในรหัสหลามของฉัน ฉันสามารถนำเข้าผ่านทางคอนโซลหลามบนเดสก์ท็อปของ ARCGIS แต่ฉันไม่สามารถนำเข้าสู่ Python IDLE ได้ ฉันได้รับข้อผิดพลาดดังต่อไปนี้

Traceback (most recent call last):

File "C:\Python26\lib\site-packages\win32com\client\dynamic.py", line 246, in 
__getitem__raise TypeError("This object does not support enumeration") 

ฉันพูดถึงโฟลเดอร์ต่อไปนี้เป็นส่วนหนึ่งของเส้นทางของหลาม

C:\Program Files\ArcGIS\Desktop10.0\arcpy;
C:\Program Files\ArcGIS\Desktop10.0\arcpy\arcpy;
C:\Python26\ArcGIS10.0\Tools\Scripts

ฉันพบปัญหาเดียวกันที่กล่าวถึง

นำเข้า arcpy ให้ผล "TypeError: วัตถุนี้ไม่รองรับการแจงนับ"

ผู้ใช้บอกว่ามันเกิดจากสิ่งต่อไปนี้:

ฉันเขียนเพื่อ Arcgis 9 และ 10 ในไดเรกทอรีเดียวกัน บางอย่างเกี่ยวกับตรรกะการเริ่มต้นในการนำเข้า arcpy พบ arcgisscripting.py แบบกำหนดเองที่ใช้สำหรับการเรียกใช้ python 2.6 กับ arcgis 9.3 เมื่ออยู่ด้วยกัน

ฉันมี ARCGIS 10 เท่านั้นและฉันไม่ทราบว่า arcpy ค้นหาโมดูลของมันอย่างไร


คุณเพียงแค่พิมพ์การนำเข้า arcpy ลงใน Python shell (ของ IDLE) เพื่อดูข้อผิดพลาดนี้หรือไม่? หรืออาจแค่พิมพ์การนำเข้า arcpy ลงในหน้าต่าง Python (จาก IDLE) และใช้ Run Module เพื่อดู คุณต้องใช้ PYTHONPATH ที่ยาวหรือไม่? ฉันเพิ่งมี PYTHONPATH = C: \ Python26 และ C: \ Python26 \ ArcGIS10.0 เป็นส่วนหนึ่งของตัวแปร PATH ของฉัน
PolyGeo

ใช่ฉันแค่นำเข้าโมดูลในหน้าต่าง IDLE ฉันยังลองใช้ python interpreter ใน ARCGIS นำเข้าโมดูล arpy ฉันยังคงได้รับข้อผิดพลาด
Karthik Bharadwaj

1
คุณต้องใช้ PYTHONPATH ที่ยาวหรือไม่? ฉันเพิ่งมี PYTHONPATH = C: \ Python26 และ C: \ Python26 \ ArcGIS10.0 เป็นส่วนหนึ่งของตัวแปร PATH ของฉัน
PolyGeo

1
windows solution -> ติดตั้งใหม่ทั้ง arcgis และ python
Aragon

1
ฉันต้องการที่จะเข้าใจว่าปัญหาพื้นฐานและวิธีการที่เกิดขึ้นในกรณีที่เลวร้ายที่สุดฉันคิดว่าฉันจะต้องถอนการติดตั้งทั้งสองอย่าง @PolyGeo ฉันเปลี่ยนเส้นทางและตัวแปรพา ธ ของฉัน แต่ปัญหาจะลบออกเหมือนกัน
Karthik Bharadwaj

คำตอบ:


9

PYTHONPATHแก้ไขของคุณ จากความช่วยเหลือ ArcGIS:

เมื่อใช้คำสั่งนำเข้า Python จะค้นหาโมดูลที่ตรงกับชื่อนั้นในตำแหน่งต่อไปนี้ (และตามลำดับต่อไปนี้):

  1. พา ธ ที่ระบุในPYTHONPATHตัวแปรสภาพแวดล้อมของระบบ
  2. ชุดของโฟลเดอร์หลามมาตรฐาน (โฟลเดอร์ปัจจุบัน C:\python2x\lib, C:\python2x\Lib\site-packagesและอื่น ๆ )
  3. พา ธ ที่ระบุภายใน.pthไฟล์ใด ๆ ที่พบใน 1 และ 2

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ดูต่อไปนี้: http://docs.python.org/install/index.html#modifying-python-s-search-path การติดตั้งผลิตภัณฑ์ ArcGIS 10.0 จะติดตั้ง Python 2.6 หากยังไม่ได้ติดตั้ง การติดตั้งนอกจากนี้ยังจะเพิ่มไฟล์Desktop10.pth(หรือEngine10.pthหรือServer10.pth) python26\Lib\site-packagesลง เนื้อหาของไฟล์นี้มีสองบรรทัดที่มีเส้นทางไปยังโฟลเดอร์ arcpy และ bin ของการติดตั้ง ArcGIS ของระบบของคุณ พา ธ ทั้งสองนี้จำเป็นต้องนำเข้า ArcPy สำเร็จใน Python เวอร์ชัน 2.6 เมื่อใช้คำสั่งการนำเข้า Python อ้างอิงถึงPYTHONPATHตัวแปรสภาพแวดล้อมของระบบเพื่อค้นหาไฟล์โมดูล ตัวแปรนี้ถูกตั้งค่าเป็นรายการของไดเรกทอรี


เคล็ดลับ:

หากการนำเข้า ArcPy สร้างข้อผิดพลาดอย่างใดอย่างหนึ่งต่อไปนี้ไม่พบโมดูลที่ต้องการ ImportError: No module named arcpy ImportError: No module named arcgisscripting

ในการแก้ไขปัญหานี้ให้เรียกดูโดยใช้ Windows Explorer ไปยังpython26\Lib\site-packagesโฟลเดอร์และเพิ่มหรือแก้ไขDesktop10.pthไฟล์ ไฟล์ควรมีสองบรรทัดที่แสดงด้านล่าง (แก้ไขเส้นทางของระบบของคุณหากไม่ตรงกัน):

  • C:\Program Files\ArcGIS\Desktop10.0\arcpy
  • C:\Program Files\ArcGIS\Desktop10.0\bin

ขอบคุณทุกคน เช่นเดียวกับ @Aragon แนะนำให้ฉันติดตั้งใหม่ทั้ง ARCGIS Desktop และ Python ใส่ไฟล์ Desktop.pth เข้าที่และใช้งานได้
Karthik Bharadwaj
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.