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.