Importujesz GDAL z okna Python ArcGIS na komputery?

10

Próbuję uruchomić kod w języku Python za pomocą okna Python w ArcGIS 10.1, które korzysta zarówno z modułów, jak arcpyi gdal. Jednak gdy próbuję zaimportować gdalmoduł , pojawia się błąd:

ImportError: No module named osgeo

Oczywiście nie może znaleźć modułu, więc do sys.pathlisty dodałem mój główny katalog Python site-packages :

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

Jednak gdy próbuję uruchomić import osgeolub pojawia from osgeo import gdalsię następujący błąd:

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.

Znalazłem w Internecie różne zasoby, które wydają się mówić o podobnych problemach (na przykład to pytanie i post na forum , ale wydają się być nieaktualne (tj. Nie używają ArcGIS 10.1) lub nie zadają tego samego pytanie.

Oczywiście, import osgeoz normalnym oknie non-Arc Python działa dobrze, a ja w porównaniu sys.pathi os.environ['PATH']między skryptami i aktualizowane je tak, że są one takie same, i nie wydaje się, aby rozwiązać problem.

Czy ktoś ma pojęcie, jak mogę to uruchomić?

robintw
źródło
Słyszałem już historie o ludziach zmuszających GDAL do pracy w interfejsie Python ArcGIS. Kilka pytań: Jakiej metody użyłeś do zainstalowania GDAL i czy jesteś pewien, że masz poprawnie zainstalowane i poprawnie skonfigurowane wiązania Windows? A czy zainstalowałeś powiązania Pythona z instalacją Pythona ArcGIS?
James Milner,
Wygląda na to, że masz zainstalowaną inną wersję (2.7) Pythona oprócz wersji (2.6) zainstalowanej przez ArcGIS 10. Czy zainstalowałeś również GDAL dla 2.6, czy próbujesz wskazać wersję zainstalowaną dla 2.7? Czy twoja wersja 2.7 instaluje instalację 64-bitową?
Jason
@Jason: Używam ArcGIS 10.1, który według gis.stackexchange.com/questions/22271/... używa Pythona 2.7. Czy wiesz, czy to prawda?
robintw
1
@Robintw istnieje wiele sposobów instalowania GDAL dla Pythona. Być może mógłbyś połączyć mnie z plikiem wykonywalnym, którego użyłeś i jak go skonfigurowałeś?
James Milner,
2
Właśnie udało mi się rozwiązać pytanie - nie udało mi się przeczytać powyższego fragmentu, w którym @Jason zapytał, czy używam 64-bitowej instalacji Pythona 2.7. Odpowiedź brzmi: moja główna instalacja Python 2.7 jest 64-bitowa, ale instalacja Arc jest 32-bitowa, więc musiałem zainstalować 32-bitową wersję GDAL, a teraz działa dobrze. Dzięki wszystkim - dodam moje ostateczne rozwiązanie jako odpowiedź.
robintw

Odpowiedzi:

5

@robintw potwierdził to w komentarzach .


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

Z tego błędu wynika, że ​​instalacja Pythona 2.7 jest 64-bitowa. Będziesz musiał zainstalować 32-bitową wersję Pythona i GDAL.

RK
źródło