Импортировать GDAL из окна Python ArcGIS for Desktop?

10

Я пытаюсь запустить код Python с помощью окна Python в ArcGIS 10.1 , который использует как arcpyи gdalмодули. Однако, когда я пытаюсь импортировать gdalмодуль, я получаю сообщение об ошибке:

ImportError: No module named osgeo

Очевидно, что он не может найти модуль, поэтому я добавил свою основную директорию python site-packages в 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из обычного окна без Дуга Python работает отлично, и я сравнил sys.pathи os.environ['PATH']между сценариями и обновлены их так , что они такие же, и это , кажется, не решить эту проблему.

Кто-нибудь знает, как я могу заставить это работать?

robintw
источник
Я уже слышал истории о том, как люди заставляли GDAL работать в интерфейсе Python ArcGIS. Несколько вопросов: Какой метод вы использовали для установки GDAL, и вы уверены, что у вас установлены и правильно настроены привязки Windows? А вы установили привязки python к установке Python ArcGIS?
Джеймс Милнер
Похоже, у вас установлена ​​другая версия (2.7) Python в дополнение к версии (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. Возможно, вы могли бы связать меня с исполняемым файлом, который вы использовали, и как вы его настроили?
Джеймс Милнер
2
Мне только что удалось решить вопрос - мне не удалось прочитать выше, где @Jason спросил, использую ли я 64-битную установку Python 2.7. Ответ в том, что моя основная установка Python 2.7 - 64-разрядная, но установка Arc - 32-разрядная, поэтому мне нужно было установить 32-разрядную версию GDAL, и теперь она работает нормально. Спасибо всем - я добавлю свое окончательное решение в качестве ответа.
robintw

Ответы:

5

@robintw подтвердил это в комментариях .


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

Из ошибки может показаться, что ваша установка Python 2.7 является 64-битной. Вам придется установить 32-битную версию Python и GDAL.

RK
источник