Importare GDAL dalla finestra Python di ArcGIS per desktop?


10

Sto cercando di eseguire un po 'di codice Python utilizzando la finestra Python in ArcGIS 10.1 che utilizza sia i moduli arcpye gdal. Tuttavia, quando provo ad importare il gdalmodulo ricevo un errore:

ImportError: No module named osgeo

Ovviamente non riesce a trovare il modulo, quindi ho aggiunto la mia directory principale di pacchetti di siti Python sys.pathall'elenco:

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

Tuttavia, quando provo ad eseguire import osgeoo from osgeo import gdalottengo il seguente errore:

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.

Ho trovato varie risorse su Internet che sembrano parlare di problemi simili (ad esempio questa domanda e questo post sul forum , ma sembrano essere obsoleti (cioè non usare ArcGIS 10.1) o non chiedere lo stesso domanda.

Ovviamente, l'importazione osgeoda una normale finestra non Arc Python funziona bene, e ho confrontato sys.pathe os.environ['PATH']tra gli script e li ho aggiornati in modo che siano uguali e non sembra risolvere il problema.

Qualcuno ha idea di come posso farlo funzionare?


Ho già sentito storie di persone che hanno fatto funzionare GDAL nell'interfaccia python di ArcGIS. Alcune domande: quale metodo hai usato per installare GDAL e sei sicuro di avere i collegamenti a Windows corretti installati e impostati correttamente? E hai installato i collegamenti python all'installazione di ArcGIS python?
— James Milner,

Sembra che tu abbia installato un'altra versione (2.7) di Python oltre alla versione (2.6) installata da ArcGIS 10. Hai installato anche GDAL per 2.6 o stai provando a indicarlo alla versione installata per 2.7? 2.7 è un'installazione a 64 bit?
— Jason,

@Jason: sto usando ArcGIS 10.1, che secondo gis.stackexchange.com/questions/22271/… usa Python 2.7. Sai se è corretto?
— Robintw,

1
@Robintw ci sono molti modi per installare GDAL per Python. Forse potresti collegarmi all'eseguibile che hai usato e come lo hai impostato?
— James Milner,

2
Sono appena riuscito a risolvere la domanda: non sono riuscito a leggere il bit sopra in cui @Jason mi ha chiesto se stavo usando un'installazione a 64 bit di Python 2.7. La risposta è che la mia installazione principale di Python 2.7 è a 64 bit, ma l'installazione di Arc è a 32 bit, quindi avevo bisogno di installare una versione a 32 bit di GDAL, e ora funziona bene. Grazie a tutti - aggiungerò la mia soluzione finale come risposta.
— Robintw,

Risposte:


5

@robintw lo ha confermato nei commenti .


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

Dall'errore, sembrerebbe che l'installazione di Python 2.7 sia a 64 bit. Dovrai installare la versione a 32 bit di Python e GDAL.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.