Fiona ImportError: ładowanie DLL nie powiodło się

11

Z powodzeniem korzystam z doskonałej kombinacji Shapely / Fiona w systemie Linux, ale teraz muszę stworzyć rodzaj środowiska produkcyjnego w systemie Windows i jest tylko jeden problem. Kiedy próbuję zaimportować Fiona, pojawia się następujący błąd:

Błąd importowania DLL

jeśli spróbuję sprawdzić zależności ogrext.pdy przy użyciu Walkera zależności, wydaje się, że próbuje załadować bibliotekę DLL wersji GDAL 1.10 i kończy się niepowodzeniem. O dziwo mam zainstalowany GDAL 1.9.2 i wydaje się, że bez problemu importuje się do Pythona (z Osgeo Import Gdal). Więc może nie jest to nawet związane z problemem importu fiona. Ponadto w 100% pobrałem instalator Fiona dla Pythona 2.7, ponieważ wiem, że mogą wystąpić problemy, jeśli użyjesz plików .pyd przeznaczonych dla innej wersji Pythona.

Uwaga: używam samodzielnej instalacji Pythona 2.7.5, bez korzystania z instalatora osgeo4w.

U2ros
źródło
Jeśli potrzebuje GDAL 1.10, a ty masz tylko 1.9, to nie zadziała
Nathan W
Hmmm, próbowałem właśnie z 1.10, ta sama historia
U2ros,
@sgillies powinny gdzieś być. On może być w stanie pomóc.
Nathan W
Wydaje się, że podobny problem powstał z wersją osx fiona kilka wersji wstecz, coś wspólnego ze ścieżkami GDAL, zagram jeszcze trochę ...
U2ros
3
Nie używam Windowsa, ale wypróbowałbym instalatory Fiona na lfd.uci.edu/~gohlke/pythonlibs/#fiona wraz z instalatorami GDAL: lfd.uci.edu/~gohlke/pythonlibs/#gdal .
sgillies

Odpowiedzi:

4

Ten ciągły problem był powodowany przez niezgodność Fiony z GDAL, ale Fiona została zaktualizowana, więc poniższe odpowiedzi mogą być bardziej odpowiednie.

Fiona 1.8.9 obsługuje GDAL 3.0

Dokumentacja:

Dodano moduł podkładki i wsparcie dla GDAL 3.0. Pakiet można teraz zbudować i używać z GDAL 3.0 i PROJ 6.1 lub 6.2. Pamiętaj, że koła 1.8.9, które załadujemy do PyPI, będą zawierać GDAL 2.4.2 i PROJ 4.9.3, jak w kołach 1.8.8.

Mattijn
źródło
2

Miałem dokładnie ten sam problem po zainstalowaniu GDAL metodą opisaną w Jak uruchomić OGR w ArcGIS Scripts? (w tym ustawienie zmiennych środowiskowych). Nie jestem pewien, czy to nie działało, ale albo było oparte na starej wersji GDAL 1.11, albo na powiązaniach Pythona 2.7, które być może nie działały poprawnie.

Naprawiłem to, wykonując powyższe kroki, zwłaszcza pobierając najnowszą wersję GDAL 2.1 z http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal . Po zainstalowaniu pakietu przez pip stara wersja GDAL została usunięta i zastąpiona najnowszą. Po ponownym uruchomieniu IDE mogłem importować gdal i fiona bez żadnych błędów.

Joram Schito
źródło
2

edycja 202202021:

nie jestem pewien, czy jest to teraz odpowiednie, ale ponownie odnalazłem stare linki z działającymi.

Miałem ten problem ostatniej nocy. Aby to naprawić, upewnij się, że:

  1. Mają Biblioteki gdal (zainstalować msi rdzenia, a następnie Wiązania Pythona msi)
  2. Skonfiguruj zmienne środowiskowe GDAL .

Myślę, że to wszystko, co zrobiłem. Jeśli to nie zadziała, daj mi znać, a ja zbadam sprawę dalej.

old1 old2

CoreyJames
źródło
2
Oba hiperłącza są nieaktualne - 404 nie znaleziono
jberrio
1

Mam dokładnie ten sam problem. Musisz użyć pakietu GDAL z http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal . Niestety to gdal 1.1. por. http://sgillies.net/blog/1190/fiona-1-0-1/#comment2806

Alban
źródło
1.10 to nigdy nie więcej niż 1.9
U2ros 28.08.13
1
Dobra, ważny komentarz !: Nadal miałem z tym problemy na niektórych komputerach ... dlaczego? Ponieważ nie czytam tekstu! W nagłówku strony znajduje się ostrzeżenie o zależnościach ... a na komputerach, na których to nie działało, brakowało mi wizualnych redystrybucji c ++!
U2ros,
1

Stare pytanie, ale pozostawiając to tutaj każdemu, kto się po nim natknie:

Geoff Boeing napisał świetny samouczek na temat instalacji biblioteki geopandas, która dotyczy instalacji Fiona (a także innych bibliotek, takich jak foremna, gdal, pyproj ...). Samouczek znajduje się tutaj: http://geoffboeing.com/2014/09/using-geopandas-windows/

Krok, który mnie zaskoczył, polegał na tym, że miałem poprzednią instalację osgeo (myślę, że po zainstalowaniu postGIS) i nie grało miło z plikami koła z http://www.lfd.uci.edu/~gohlke/pythonlibs/# fiona

Odinstalowanie wszystkich powiązanych bibliotek, a następnie budowanie wyłącznie z tych plików kół naprawiło błąd importowania DLL dla mnie (w systemie Windows 10)

wmebane
źródło
1

Podobnie jak inni, pozwólcie, że podzielę się moim doświadczeniem z rozwiązaniem tego problemu dla tych, którzy nadal mają z nim problemy w systemie Windows i którzy mają te same wersje python i gdal.

W moim przypadku ImportError: DLL load failed: The specified module could not be foundwystąpił błąd po zainstalowaniu geopandas (wersja 0.6.2) z Condą i Pythonem 3.7.3 oraz podczas próby importowania zarówno gdal (wersja 3.0.2), jak i fiona (wersja 1.8.11) . Korzystam z systemu Windows 10 (wersja 1709).

Po wypróbowaniu różnych proponowanych rozwiązań bez powodzenia (zasadniczo postępując zgodnie z przewodnikiem Geoffa Boeinga dotyczącym instalowania geopand w systemie Windows i instalowania kół GDAL Christopha Gohlkego ), wydawało mi się, że to zadziałało dla mnie, instalując redystrybucję Microsoft Visual C ++ dla Visual Studio 2015, 2017 i 2019 jako wskazany przez Gohlke w nagłówku jego strony i jak wspomniano przez @ U2ros .

Nie ma więc potrzeby instalowania kół Gohlke; możesz po prostu użyć conda lub pip, aby zainstalować Fiona i geopandę. Jak wskazano w aktualizacji tej odpowiedzi , GDAL wersja 3 jest rzeczywiście obsługiwany przez Fiona (wersje 1.8.9+).

onietosi
źródło
0

Widzę, że na to pytanie udzielono odpowiedzi wiele razy, ale chcę podzielić się moim doświadczeniem w rozwiązaniu problemu, dla osób, które miały ten sam problem z tą samą wersją Pythona i przyszły na to pytanie.

Miałem też pewne problemy, kiedy zainstalowałem Fiona i próbowałem ją zaimportować. Miałem tego rodzaju wiadomość

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

Jak to dla mnie zadziałało?

  • Z tego linku zainstalowałem dystrybucje GDAL 2.2.4 i Fiona
  • Następnie sprawdziłem, czy mój komputer ma kompilator c ++ dla Pythona ( tutaj link z informacjami o tym, który może być potrzebny). Na niektórych forach zadałem pytanie, że GDAL potrzebuje tego kompilatora, aby mógł działać.
  • Następnie dodałem ścieżkę folderu Osgeo (dll dla fiona) do mojej zmiennej środowiskowej path, kilka zdjęć z mojego komputera. Drukuj ekran 1 Drukuj ekran 2

Po wykonaniu tych kroków nigdy więcej nie miałem problemów z Fiona. Początkowo korzystałem z GDAL w wersji 1.1.4, ale nigdy nie działał z tym. Możesz spróbować najpierw z wersją pierwszą, a jeśli to nie działa, zainstaluj wersję 2.2.4

Yiyi
źródło