การนำเข้า GDAL จากหน้าต่าง Python ของ ArcGIS for Desktop?


10

ฉันพยายามเรียกใช้รหัส Python โดยใช้หน้าต่าง Python ใน ArcGIS 10.1 ที่ใช้ทั้งโมดูลarcpyและ gdalอย่างไรก็ตามเมื่อฉันลองและนำเข้าgdalโมดูลฉันได้รับข้อผิดพลาด:

ImportError: No module named osgeo

เห็นได้ชัดว่ามันหาโมดูลไม่ได้ดังนั้นฉันจึงเพิ่มไดเรกทอรีหลักของแพ็คเกจเว็บไซต์หลามลงในsys.pathรายการ:

sys.path.append(r"C:\Python27\lib\site-packages")

อย่างไรก็ตามเมื่อฉันลองและเรียกใช้import osgeoหรือfrom osgeo import gdalฉันได้รับข้อผิดพลาดต่อไปนี้:

Runtime error 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Python27\lib\site-packages\osgeo\__init__.py", line 21, in <module>
    _gdal = swig_import_helper()
  File "C:\Python27\lib\site-packages\osgeo\__init__.py", line 17, in swig_import_helper
    _mod = imp.load_module('_gdal', fp, pathname, description)
ImportError: DLL load failed: %1 is not a valid Win32 application.

ฉันได้พบแหล่งข้อมูลต่าง ๆ บนอินเทอร์เน็ตที่ดูเหมือนจะพูดคุยเกี่ยวกับปัญหาที่คล้ายกัน (เช่นคำถามนี้และโพสต์ฟอรัมนี้แต่ดูเหมือนว่าล้าสมัย (เช่นไม่ได้ใช้ ArcGIS 10.1) หรือไม่ได้ถามเหมือนกัน คำถาม.

แน่นอนการนำเข้าosgeoจากหน้าต่างที่ไม่ใช่อาร์คงูเหลือมปกติทำงานได้ดีและฉันได้เปรียบเทียบsys.pathและos.environ['PATH']ระหว่างสคริปต์และปรับปรุงพวกเขาเพื่อให้พวกเขาเหมือนกันและดูเหมือนจะไม่ได้แก้ไขปัญหา

ไม่มีใครมีความคิดใด ๆ ว่าฉันจะทำให้มันทำงานได้อย่างไร?


ฉันเคยได้ยินเรื่องราวของผู้คนที่ได้รับ GDAL ให้ทำงานในอินเทอร์เฟซหลาม ArcGIS มาก่อน คำถามสองสามข้อ: คุณใช้วิธีใดในการติดตั้ง GDAL และคุณแน่ใจหรือไม่ว่าคุณมีการติดตั้ง windows bindings ที่ถูกต้องและตั้งค่าอย่างถูกต้อง และคุณได้ติดตั้งการรวมงูหลามกับการติดตั้งงูหลาม ArcGIS หรือไม่?
James Milner

ดูเหมือนว่าคุณมี Python เวอร์ชันอื่น (2.7) ติดตั้งอยู่นอกเหนือจากเวอร์ชัน (2.6) ที่ติดตั้งโดย ArcGIS 10 คุณติดตั้ง GDAL สำหรับ 2.6 ด้วยเช่นกันหรือคุณกำลังพยายามชี้ไปที่เวอร์ชันที่ติดตั้งไว้สำหรับ 2.7 หรือไม่ 2.7 ของคุณติดตั้งการติดตั้ง 64 บิตหรือไม่
เจสัน

@ Jason: ฉันใช้ ArcGIS 10.1 ซึ่งตามgis.stackexchange.com/questions/22271/…ใช้ Python 2.7 คุณรู้หรือไม่ว่าถูกต้อง?
robintw

1
@Robintw มีหลายวิธีในการติดตั้ง GDAL สำหรับ python บางทีคุณอาจเชื่อมโยงฉันกับสิ่งที่คุณใช้และวิธีการตั้งค่า
James Milner

2
ฉันเพิ่งจะแก้ปัญหาคำถาม - ฉันพลาดที่จะอ่านบิตด้านบนที่ @Jason ถามว่าฉันใช้การติดตั้ง Python 2.7 แบบ 64 บิตหรือไม่ คำตอบก็คือการติดตั้ง Python 2.7 หลักของฉันคือ 64 บิต แต่การติดตั้งของ Arc เป็น 32 บิตดังนั้นฉันต้องติดตั้ง GDAL รุ่น 32 บิตและตอนนี้ก็ใช้ได้ดี ขอบคุณทุกคน - ฉันจะเพิ่มคำตอบสุดท้ายของฉันเป็นคำตอบ
robintw

คำตอบ:


5

@robintw ได้รับการยืนยันในการแสดงความคิดเห็น


ImportError: DLL load failed: %1 is not a valid Win32 application.

จากข้อผิดพลาดดูเหมือนว่าการติดตั้ง Python 2.7 ของคุณเป็นแบบ 64 บิต คุณจะต้องติดตั้ง Python และ GDAL รุ่น 32 บิต

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