Fiona ImportError: caricamento DLL non riuscito


11

Ho usato con successo la fantastica combinazione Shapely / Fiona su Linux, ma ora ho bisogno di creare una sorta di ambiente di produzione su Windows e c'è solo un problema. Quando provo a importare Fiona, ottengo il seguente errore:

Errore di importazione DLL

se provo a controllare le dipendenze di ogrext.pdy usando dependance walker, sembra che stia provando a caricare la versione 1.10 di GDAL dll e fallisce. Stranamente, ho GDAL 1.9.2 installato e sembra importare in Python senza problemi (da osgeo import gdal). Quindi forse non è nemmeno legato al problema dell'importazione di Fiona. Inoltre, im 100% ho scaricato il programma di installazione di Fiona per Python 2.7 poiché so che possono sorgere problemi se si utilizzano file .pyd destinati a una versione diversa di Python.

Nota, sto usando un'installazione standalone di python 2.7.5, senza usare il programma di installazione osgeo4w.


Se ha bisogno di GDAL 1.10 e hai solo 1.9 che non funzionerà
Nathan W

Hmmm, provato con 1.10 proprio ora, stessa storia
U2ros,

@sgillies dovrebbe essere da qualche parte. Potrebbe essere in grado di aiutare.
Nathan W,

Sembra che si sia verificato un problema simile con la versione osx di un paio di versioni di fiona, qualcosa a che fare con i percorsi GDAL, ne
giocherò

3
Non uso Windows, ma proverei gli installatori di Fiona su lfd.uci.edu/~gohlke/pythonlibs/#fiona insieme agli installatori GDAL: lfd.uci.edu/~gohlke/pythonlibs/#gdal .
sgillies,

Risposte:


4

Questo problema in corso era causato dall'incompatibilità di Fiona con GDAL, ma Fiona è stata aggiornata, quindi le risposte di seguito potrebbero essere più pertinenti.

Fiona 1.8.9 supporta GDAL 3.0

Documentazione:

Sono stati aggiunti un modulo shim e il supporto per GDAL 3.0. Il pacchetto ora può essere compilato e utilizzato con GDAL 3.0 e PROJ 6.1 o 6.2. Nota che le ruote 1.8.9 che cariceremo su PyPI conterranno GDAL 2.4.2 e PROJ 4.9.3 come nelle ruote 1.8.8.


2

Ho avuto esattamente lo stesso problema dopo aver installato GDAL con il metodo spiegato in Come eseguire OGR negli script ArcGIS? (inclusa l'impostazione delle variabili di ambiente). Non sono sicuro che non abbia funzionato, ma o era basato sulla vecchia versione 1.11 di GDAL o sui binding di Python 2.7 che forse non funzionavano correttamente.

L'ho risolto seguendo i passaggi precedenti, specialmente scaricando l'ultima versione GDAL 2.1 da http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal . Installando il pacchetto tramite pip, la vecchia versione GDAL è stata eliminata e sostituita dalla più recente. Dopo aver riavviato l'IDE, ho potuto importare gdal e fiona senza errori.


2

modifica 202202021:

non sono sicuro di quanto sia rilevante ora, ma hanno ripristinato i vecchi collegamenti con quelli funzionanti.

Ho avuto questo problema proprio ieri sera. Per risolverlo, assicurati di:

  1. Hanno le librerie GDAL (installa il core .msi, quindi i python bind .msi)
  2. Imposta le variabili ambientali GDAL .

Penso che sia stato tutto ciò che ho fatto. Se non funziona fammi sapere e indagherò ulteriormente.

old1 old2


2
Entrambi i collegamenti ipertestuali sono obsoleti - 404 non
trovati

1

Ho esattamente lo stesso problema. È necessario utilizzare il pacchetto GDAL da http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal . Purtroppo è gdal 1.1. cf. http://sgillies.net/blog/1190/fiona-1-0-1/#comment2806


1.10 non è mai inferiore a 1.9
U2ros,

1
Ok, commento importante !: Ho ancora avuto problemi con questo su alcuni computer ... perché? Perché non leggo il testo! Nell'intestazione del sito, c'è un avvertimento sulle dipendenze ... e sui computer in cui non funzionava, mi mancava ridistribuibili Visual c ++!
U2ros,

1

Vecchia domanda, ma lasciandola qui per chiunque si imbatta in essa:

Geoff Boeing ha scritto un ottimo tutorial su come installare la libreria geopandas, che va oltre l'installazione di fiona (così come altre librerie come shapely, gdal, pyproj ...). Il tutorial si trova qui: http://geoffboeing.com/2014/09/using-geopandas-windows/

Il passo che mi ha fatto scattare è stato che avevo una precedente installazione osgeo (penso dall'installazione di postGIS) e non stava giocando bene con i file della ruota da http://www.lfd.uci.edu/~gohlke/pythonlibs/# fiona

La disinstallazione di tutte le librerie correlate e la creazione esclusiva di quei file della ruota hanno risolto l'errore di importazione DLL per me (utilizzando Windows 10)


1

Come altri, permettimi di condividere la mia esperienza con la risoluzione di questo problema per coloro che stanno ancora lottando con esso su Windows e che hanno le stesse versioni di Python e Gdal.

Nel mio caso ho ricevuto l' ImportError: DLL load failed: The specified module could not be founderrore dopo l'installazione di geopandas (versione 0.6.2) con conda e python 3.7.3 e quando provavo a importare sia gdal (versione 3.0.2) che fiona (versione 1.8.11) . Sono su Windows 10 (versione 1709).

Dopo aver provato diverse soluzioni proposte senza successo (essenzialmente seguendo la guida di Geoff Boeing per l'installazione di geopandas su Windows e l'installazione delle ruote GDAL di Christoph Gohlke ), ciò che sembrava farlo funzionare per me era l'installazione di Microsoft Visual C ++ ridistribuibile per Visual Studio 2015, 2017 e 2019 come indicato da Gohlke nell'intestazione della sua pagina e come indicato da @ U2ros .

Quindi non è necessario installare le ruote di Gohlke; puoi semplicemente usare conda o pip per installare fiona e geopandas. E come indicato nell'aggiornamento a questa risposta , GDAL versione 3 è effettivamente supportata da Fiona (versioni 1.8.9+).


0

Vedo che questa domanda ha ricevuto molte risposte, ma voglio condividere la mia esperienza nella risoluzione del problema, per le persone che hanno avuto lo stesso problema con la stessa versione di Python e arrivano a questa domanda.

Ho anche avuto dei problemi quando ho installato Fiona e ho provato a importarlo. Ho avuto questo tipo di messaggio

>>> import fiona
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "D:\Software\Ingenieria\Anaconda2\lib\site-packages\fiona\__init__.py", l
ine 77, in <module>
    from fiona.collection import Collection, BytesCollection, vsi_path
  File "D:\Software\Ingenieria\Anaconda2\lib\site-packages\fiona\collection.py",
 line 9, in <module>
    from fiona.ogrext import Iterator, ItemsIterator, KeysIterator
ImportError: DLL load failed: The specified module could not be found.

Come ha funzionato per me alla fine?

  • Ho installato le distribuzioni GDAL 2.2.4 e Fiona da questo link
  • Quindi ho verificato se il mio computer ha un compilatore c ++ per Python ( qui link con alcune informazioni su quale potrebbe essere necessario installare). In alcune domande sui forum ho letto che GDAL ha bisogno di questo compilatore per funzionare.
  • Poi ho aggiunto il percorso della cartella di OSGeo (ci sono le DLL per Fiona) al mio variabile d'ambiente PATH, alcune foto dal mio pc schermo stampa 1 schermo Stampa 2

Dopo aver fatto quei passaggi non ho mai avuto più problemi con Fiona. Inizialmente, stavo usando la versione 1.1.4 di GDAL ma non ha mai funzionato con questo. Puoi provare prima con la versione uno e, se non funziona, installa la versione 2.2.4

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.