Fiona ImportError: сбой загрузки DLL

11

Я успешно использовал великолепную комбинацию Shapely / Fiona для Linux, но теперь мне нужно создать производственную среду для Windows, и есть только одна проблема. Когда я пытаюсь импортировать fiona, я получаю следующую ошибку:

Ошибка импорта DLL

Если я пытаюсь проверить зависимости ogrext.pdy, используя средство обхода зависимостей, кажется, что он пытается загрузить GDAL версии 1.10 DLL и не удается. Как ни странно, у меня установлен GDAL 1.9.2, и он, кажется, без проблем импортирует в python (из osgeo import gdal). Так что, возможно, это даже не связано с проблемой импорта Фионы. Кроме того, я на 100% скачал установщик fiona для python 2.7, поскольку я знаю, что могут возникнуть проблемы, если вы используете файлы .pyd, предназначенные для другой версии python.

Обратите внимание, что я использую автономную установку Python 2.7.5, без использования установщика osgeo4w.

U2ros
источник
Если ему нужен GDAL 1.10, а у вас есть только 1.9, который не будет работать
Натан W
Хммм, попробовал с 1.10 только сейчас,
такая
@sgillies должны быть где-то рядом. Он мог бы помочь.
Натан W
Похоже, что аналогичная проблема возникла с версией osion fiona пару версий назад, что-то связанное с путями GDAL, я
поиграю
3
Я не использую Windows, но я бы попробовал установщики Fiona по адресу lfd.uci.edu/~gohlke/pythonlibs/#fiona вместе с установщиками GDAL: lfd.uci.edu/~gohlke/pythonlibs/#gdal .
sgillies

Ответы:

4

Эта постоянная проблема была вызвана тем, что Fiona была несовместима с GDAL, но Fiona была обновлена, поэтому приведенные ниже ответы могут быть более уместными.

Fiona 1.8.9 поддерживает GDAL 3.0

Документация:

Добавлен модуль shim и поддержка GDAL 3.0. Пакет теперь может быть собран и использован с GDAL 3.0 и PROJ 6.1 или 6.2. Обратите внимание, что колеса 1.8.9, которые мы будем загружать в PyPI, будут содержать GDAL 2.4.2 и PROJ 4.9.3, как в колесах 1.8.8.

Mattijn
источник
2

У меня была точно такая же проблема после установки GDAL методом, описанным в разделе Как запустить OGR в ArcGIS Scripts? (включая настройку переменных среды). Я не уверен, что это не сработало, но оно было основано на старой версии GDAL 1.11 или привязках Python 2.7, которые, возможно, не работали должным образом.

Я исправил это, выполнив шаги, описанные выше, особенно загрузив последнюю версию GDAL 2.1 с http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal . При установке пакета по pip старая версия GDAL была удалена и заменена последней. После перезапуска IDE я мог импортировать gdal и fiona без каких-либо ошибок.

Йорам Скито
источник
2

изменить 202202021:

не уверен, насколько это актуально сейчас, но вернул старые ссылки на рабочие.

У меня была эта проблема только прошлой ночью. Чтобы это исправить, убедитесь, что вы:

  1. Иметь библиотеки GDAL (установить ядро ​​.msi, затем привязки python .msi)
  2. Настройте переменные среды GDAL .

Я думаю, что это было все, что я сделал. Если это не сработает, дайте мне знать, и я продолжу расследование.

old1 old2

CoreyJames
источник
2
Обе гиперссылки устарели - 404 не найдено--
jberrio
1

У меня точно такая же проблема. Вам необходимо использовать пакет GDAL по адресу http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal . К сожалению, это GDAL 1.1. ср http://sgillies.net/blog/1190/fiona-1-0-1/#comment2806

Alban
источник
1.10 никогда не бывает 1.9
U2ros
1
Хорошо, важный комментарий! У меня все еще были проблемы на некоторых компьютерах ... почему? Потому что я не читаю текст! В заголовке сайта есть предупреждение о зависимостях ... и на компьютерах, где это не работает, мне не хватало распространяемых Visual C ++!
U2ros
1

Старый вопрос, но оставлю это здесь для всех, кто сталкивается с этим:

Джефф Боинг (Geoff Boeing) написал отличный учебник по установке библиотеки геопанд, в которой рассказывается об установке fiona (а также других библиотек, таких как shapely, gdal, pyproj ...). Учебное пособие находится здесь: http://geoffboeing.com/2014/09/using-geopandas-windows/

Шаг, который сбил меня с толку, состоял в том, что у меня была установка prevgees osgeo (я думаю, от установки postGIS), и он не очень хорошо играл с файлами руля от http://www.lfd.uci.edu/~gohlke/pythonlibs/# Фиона

Удаление всех связанных библиотек, а затем сборка исключительно из этих файлов колес исправили ошибку импорта DLL для меня (в Windows 10)

wmebane
источник
1

Как и другие, позвольте мне поделиться своим опытом в решении этой проблемы для тех, кто все еще борется с ней в Windows и имеет те же версии python & gdal.

В моем случае я получил ImportError: DLL load failed: The specified module could not be foundошибку после установки геопанд (версия 0.6.2) с conda и python 3.7.3 , а также при попытке импортировать как gdal (версия 3.0.2), так и fiona (версия 1.8.11) . Я на Windows 10 (версия 1709).

После безуспешных попыток применения различных предложенных решений (по сути, следуя руководству Джеффа Боинга по установке геопанд в Windows и установке колес GDAL Кристофа Гольке ), мне показалось, что это помогло мне установить Microsoft Visual C ++ Redistributable для Visual Studio 2015, 2017 и 2019 как указано Гольке в заголовке его страницы и как упомянуто @ U2ros .

Так что нет необходимости устанавливать колеса Гольке; Вы можете просто использовать conda или pip для установки fiona и геопанд. И, как указано в обновлении к этому ответу , версия 3 GDAL действительно поддерживается fiona (версии 1.8.9+).

onietosi
источник
0

Я вижу, что на этот вопрос отвечали много раз, но я хочу поделиться своим опытом решения проблемы для людей, которые имели ту же проблему с той же версией Python и пришли к этому вопросу.

У меня также были некоторые проблемы, когда я установил fiona и попытался импортировать его. У меня было такое сообщение

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

Как это сработало для меня в конце?

  • Я установил дистрибутивы GDAL 2.2.4 и Fiona по этой ссылке
  • Затем я проверил, есть ли на моем компьютере компилятор c ++ для python ( здесь ссылка с некоторой информацией о том, какой из них вам может потребоваться установить). На некоторых форумах я читал, что GDAL нужен этот компилятор, чтобы он мог работать.
  • Затем я добавил путь к папке Osgeo (есть dll для fiona) в переменную среды path, некоторые картинки с моего компьютера. Экран печати 1 Экран печати 2

После этих шагов у меня больше не было проблем с Фионой. Сначала я использовал GDAL версии 1.1.4, но он никогда не работал с этим. Вы можете попробовать сначала с первой версией, и если она не работает, тогда установите версию 2.2.4.

Yiyi
источник