Fiona ImportError: falha no carregamento da DLL

10

Eu tenho usado com êxito a excelente combinação Shapely / Fiona no Linux, mas agora preciso criar um tipo de ambiente de produção no Windows e só há um problema. Quando tento importar fiona, recebo o seguinte erro:

Erro de importação da DLL

Se eu tentar verificar as dependências do ogrext.pdy usando o walker de dependência, parece que ele está tentando carregar a DLL do GDAL versão 1.10 e falha. Estranhamente, eu tenho o GDAL 1.9.2 instalado e parece importar para o python sem problemas (do osgeo import gdal). Então talvez nem esteja relacionado à questão da importação de fiona. Além disso, estou 100% baixando o instalador do fiona para python 2.7, pois sei que podem surgir problemas se você usar arquivos .pyd destinados a uma versão diferente do python.

Observe que estou usando uma instalação autônoma do python 2.7.5, sem usar o instalador do osgeo4w.

U2ros
fonte
Se ele precisa GDAL 1,10 e você só tem 1.9 que não está indo para o trabalho
Nathan W
Hmmm, tentou com 1,10 só agora, mesma história
U2ros
@sillies deve estar por aí em algum lugar. Ele pode ajudar.
Nathan W
Parece que um problema similar surgiu com a versão OSX de casal fiona de versões para trás, algo a ver com os caminhos GDAL, eu vou brincar mais um pouco ...
U2ros
3
Não uso o Windows, mas tentaria os instaladores do Fiona em lfd.uci.edu/~gohlke/pythonlibs/#fiona junto com os instaladores do GDAL: lfd.uci.edu/~gohlke/pythonlibs/#gdal .
Julio

Respostas:

4

Esse problema em andamento costumava ser causado pelo fato de Fiona ser incompatível com o GDAL, mas o Fiona foi atualizado, portanto as respostas abaixo podem ser mais relevantes.

Fiona 1.8.9 suporta GDAL 3.0

Documentação:

Um módulo de calço e suporte para o GDAL 3.0 foram adicionados. O pacote agora pode ser compilado e usado com o GDAL 3.0 e PROJ 6.1 ou 6.2. Observe que as rodas 1.8.9 que enviaremos para o PyPI conterão o GDAL 2.4.2 e o PROJ 4.9.3, como nas rodas 1.8.8.

Mattijn
fonte
2

Eu tive exatamente o mesmo problema depois de instalar o GDAL pelo método explicado em Como executar o OGR nos scripts do ArcGIS? (incluindo a configuração das variáveis ​​de ambiente). Não tenho certeza se não funcionou, mas foi baseado na versão antiga do GDAL 1.11 ou nas ligações do Python 2.7 que talvez não funcionassem corretamente.

Corrigi-o seguindo as etapas acima, especialmente baixando a versão mais recente do GDAL 2.1 em http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal . Ao instalar o pacote pelo pip, a versão antiga do GDAL foi excluída e substituída pela mais recente. Depois de reiniciar o IDE, eu poderia importar gdal e fiona sem erros.

Joram Schito
fonte
2

edit 202202021:

inseguro de quão relevante isso é agora, mas reaplicou antigos vínculos com os que estão funcionando.

Eu tive esse problema ontem à noite. Para corrigi-lo, verifique se você:

  1. Tenha as bibliotecas GDAL (instale o núcleo .msi e as ligações python .msi)
  2. Configure as variáveis ​​ambientais do GDAL .

Eu acho que foi tudo o que fiz. Se não funcionar, avise-me e investigarei mais.

old1 old2

CoreyJames
fonte
2
Ambos os hiperlinks estão desatualizados --404 não found--
jberrio
1

Eu tenho exatamente o mesmo problema. Você precisa usar o pacote GDAL em http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal . Infelizmente é gdal 1.1. cf. http://sgillies.net/blog/1190/fiona-1-0-1/#comment2806

Alban
fonte
1.10 nunca é de 1,9
U2ros
11
Ok, comentário importante !: Eu ainda tinha problemas com isso em alguns computadores ... por que? Porque eu não leio texto! No cabeçalho do site, há um aviso sobre dependências ... e em computadores onde não funcionava, estava faltando redistribuíveis visuais do c ++!
U2ros
1

Pergunta antiga, mas deixar isso aqui para qualquer um que tropeçar nela:

Geoff Boeing escreveu um ótimo tutorial sobre como instalar a biblioteca de geopandas, que repassa a instalação do fiona (assim como outras bibliotecas como shapely, gdal, pyproj ...). O tutorial está localizado aqui: http://geoffboeing.com/2014/09/using-geopandas-windows/

O passo que me deu um tropeço foi que eu tinha uma instalação anterior do osgeo (acho que instalando o postGIS) e não estava funcionando bem com os arquivos de roda de http://www.lfd.uci.edu/~gohlke/pythonlibs/# fiona

A desinstalação de todas as bibliotecas relacionadas e a criação exclusiva desses arquivos de roda corrigiram o erro de importação da DLL para mim (usando o Windows 10)

wmebane
fonte
1

Como outros, deixe-me compartilhar minha experiência com a solução desse problema para aqueles que ainda enfrentam problemas no Windows e que possuem as mesmas versões python & gdal.

No meu caso, recebi o ImportError: DLL load failed: The specified module could not be founderro após instalar o geopandas (versão 0.6.2) com conda e python 3.7.3 e ao tentar importar o gdal (versão 3.0.2) e o fiona (versão 1.8.11) . Estou no Windows 10 (versão 1709).

Depois de tentar diferentes soluções propostas sem sucesso (essencialmente seguindo o guia de Geoff Boeing para instalar geopandas no Windows e instalar as rodas GDAL de Christoph Gohlke ), o que pareceu fazê-lo funcionar foi instalar o Microsoft Visual C ++ Redistributable for Visual Studio 2015, 2017 e 2019 como indicado por Gohlke no cabeçalho da página e como mencionado por @ U2ros .

Portanto, não há necessidade de instalar as rodas da Gohlke; você pode simplesmente usar conda ou pip para instalar fiona e geopandas. E, como indicado na atualização desta resposta , o GDAL versão 3 é realmente suportado pelo fiona (versões 1.8.9 ou superior).

onietosi
fonte
0

Vejo que essa pergunta foi respondida várias vezes, mas quero compartilhar minha experiência na solução do problema, para as pessoas que tiveram o mesmo problema com a mesma versão python e chegaram a essa pergunta.

Eu também tive alguns problemas quando instalei o fiona e tentei importá-lo. Eu tive esse tipo de mensagem

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

Como isso funcionou para mim no final?

  • Eu instalei as distribuições GDAL 2.2.4 e Fiona a partir deste link
  • Em seguida, verifiquei se meu computador possui um compilador c ++ para python ( link aqui com algumas informações sobre qual você pode precisar instalar). Em algumas perguntas dos fóruns, li que o GDAL precisa desse compilador para poder funcionar.
  • Em seguida, adicionei o caminho da pasta Osgeo (existem dlls para fiona) à minha variável de ambiente path, algumas fotos do meu pc Print screen 1 Print screen 2

Depois de fazer essas etapas, nunca mais tive problemas com a fiona. No começo, eu estava usando a versão 1.1.4 do GDAL, mas nunca funcionou com esta. Você pode tentar primeiro com a versão um e, se não funcionar, instale a versão 2.2.4

Yiyi
fonte