Fiona ImportError: error de carga de DLL

10

He estado usando el gran combo Shapely / Fiona con éxito en Linux, pero ahora necesito crear un tipo de entorno de producción en Windows y solo hay un problema. Cuando intento importar fiona, aparece el siguiente error:

Importar error de DLL

si trato de verificar las dependencias del ogrext.pdy usando el caminante de dependencias, parece que está intentando cargar GDAL versión 1.10 dll y falla. Aunque parezca extraño, tengo instalado GDAL 1.9.2 y parece importar a Python sin problemas (desde osgeo import gdal). Entonces, tal vez ni siquiera está relacionado con el problema de importación de fiona. Además, estoy 100% descargado el instalador de fiona para python 2.7 ya que sé que pueden surgir problemas si usa archivos .pyd destinados a una versión diferente de python.

Tenga en cuenta que estoy usando una instalación independiente de python 2.7.5, sin usar el instalador osgeo4w.

U2ros
fuente
Si necesita GDAL 1.10 y solo tiene 1.9 que no funcionará
Nathan W
Hmmm, intentado con 1.10 justo ahora, la misma historia
U2ros
@sgillies deberían estar en alguna parte. Él podría ayudarlo.
Nathan W
Parece que un problema similar se presentó con la versión OS X de la pareja de Fiona versiones atrás, algo que ver con caminos GDAL, i va a jugar alrededor de un poco más ...
U2ros
3
No uso Windows, pero probaría los instaladores de Fiona en lfd.uci.edu/~gohlke/pythonlibs/#fiona junto con los instaladores de GDAL: lfd.uci.edu/~gohlke/pythonlibs/#gdal .
sgillies

Respuestas:

4

Este problema en curso solía ser causado por Fiona incompatible con GDAL, pero Fiona se ha actualizado, por lo que las respuestas a continuación pueden ser más relevantes.

Fiona 1.8.9 es compatible con GDAL 3.0

Documentación:

Se ha agregado un módulo de compatibilidad y soporte para GDAL 3.0. El paquete ahora se puede construir y usar con GDAL 3.0 y PROJ 6.1 o 6.2. Tenga en cuenta que las ruedas 1.8.9 que subiremos a PyPI contendrán GDAL 2.4.2 y PROJ 4.9.3 como en las ruedas 1.8.8.

Mattijn
fuente
2

Tuve exactamente el mismo problema después de instalar GDAL por el método explicado en ¿Cómo ejecutar OGR en ArcGIS Scripts? (incluida la configuración de las variables de entorno). No estoy seguro de si no funcionó, pero o se basó en la antigua versión 1.11 de GDAL o en los enlaces de Python 2.7 que tal vez no funcionaron correctamente.

Lo arreglé siguiendo los pasos anteriores, especialmente descargando la última versión 2.1 de GDAL desde http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal . Al instalar el paquete por pip, la versión anterior de GDAL fue eliminada y reemplazada por la última. Después de reiniciar el IDE, pude importar gdal y fiona sin ningún error.

Joram Schito
fuente
2

editar 202202021:

no estoy seguro de cuán relevante es esto ahora, pero reavivó los enlaces antiguos con los que funcionan.

Tuve este problema anoche. Para solucionarlo, asegúrese de que:

  1. Tenga las bibliotecas GDAL (instale el núcleo .msi, luego los enlaces de python .msi)
  2. Configurar las variables de entorno GDAL .

Creo que eso fue todo lo que hice. Si no funciona, avíseme e investigaré más a fondo.

viejo1 viejo2

CoreyJames
fuente
2
Ambos hipervínculos están desactualizados --404 no encontrado--
jberrio
1

Tengo exactamente el mismo problema. Debe usar el paquete GDAL de http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal . Lamentablemente es gdal 1.1. cf. http://sgillies.net/blog/1190/fiona-1-0-1/#comment2806

Alban
fuente
1.10 nunca es 1.9
U2ros
1
Bien, ¡comentario importante !: Todavía tenía problemas con esto en algunas computadoras ... ¿por qué? ¡Porque no leo el texto! En el encabezado del sitio, hay una advertencia sobre las dependencias ... y en las computadoras donde no funcionaba, ¡me faltaban los redistribuibles visuales de C ++!
U2ros
1

Antigua pregunta, pero dejando esto aquí para cualquier otra persona que se encuentre con ella:

Geoff Boeing escribió un gran tutorial sobre cómo instalar la biblioteca de geopandas, que repasa la instalación de fiona (así como otras bibliotecas como shapely, gdal, pyproj ...). El tutorial se encuentra aquí: http://geoffboeing.com/2014/09/using-geopandas-windows/

El paso que me hizo tropezar fue que tuve una instalación previaes osgeo (creo que al instalar postGIS) y no estaba jugando bien con los archivos de la rueda de http://www.lfd.uci.edu/~gohlke/pythonlibs/# fiona

Desinstalar todas las bibliotecas relacionadas y luego construir exclusivamente a partir de esos archivos de rueda solucionó el error de importación de DLL para mí (usando Windows 10)

wmebane
fuente
1

Al igual que otros, permítanme compartir mi experiencia con la solución de este problema para aquellos que todavía están luchando con él en Windows y que tienen las mismas versiones de Python y Gdal.

En mi caso, recibí el ImportError: DLL load failed: The specified module could not be founderror después de instalar geopandas (versión 0.6.2) con conda y python 3.7.3 , y al intentar importar tanto gdal (versión 3.0.2) como fiona (versión 1.8.11) . Estoy en Windows 10 (versión 1709).

Después de probar diferentes soluciones propuestas sin éxito (esencialmente siguiendo la guía de Geoff Boeing para instalar geopandas en Windows e instalar las ruedas GDAL de Christoph Gohlke ), lo que pareció funcionar para mí fue instalar el Microsoft Visual C ++ Redistributable para Visual Studio 2015, 2017 y 2019 como indicado por Gohlke en el encabezado de su página y mencionado por @ U2ros .

Así que no es necesario instalar las ruedas de Gohlke; puedes usar conda o pip para instalar fiona y geopandas. Y como se indica en la actualización de esta respuesta , la versión 3 de GDAL es compatible con fiona (versiones 1.8.9+).

onietosi
fuente
0

Veo que esta pregunta ha sido respondida muchas veces, pero quiero compartir mi experiencia resolviendo el problema, para las personas que tuvieron el mismo problema con la misma versión de Python y llegaron a esta pregunta.

También tuve algunos problemas cuando instalé fiona e intenté importarlo. Tuve este tipo de mensaje

>>> 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.

¿Cómo me funcionó al final?

  • Instalé las distribuciones GDAL 2.2.4 y Fiona desde este enlace
  • Luego verifiqué si mi computadora tiene un compilador de C ++ para Python ( aquí hay un enlace con información sobre cuál puede necesitar instalar). En algunas preguntas de los foros, leí que GDAL necesita este compilador para poder funcionar.
  • Luego agregué la ruta de la carpeta Osgeo (hay dlls para fiona) a la variable de entorno de mi ruta, algunas fotos desde mi PC Pantalla de impresión 1 Pantalla de impresión 2

Después de hacer esos pasos, nunca tuve más problemas con Fiona. Al principio, estaba usando la versión 1.1.4 de GDAL pero nunca funcionó con esta. Puede probar primero con la versión uno, y si no funciona, instale la versión 2.2.4

Yiyi
fuente