Fiona ImportError:DLL加载失败


11

我一直在Linux上成功使用过出色的Shapely / Fiona组合,但是现在我需要在Windows上创建一种生产环境,并且只有一个问题。当我尝试导入fiona时,出现以下错误:

导入DLL错误

如果我尝试使用依赖关系沃克检查ogrext.pdy的依赖关系,似乎正在尝试加载GDAL 1.10版dll并失败。不过奇怪的是,我安装了GDAL 1.9.2,它似乎可以毫无问题地导入python(从osgeo import gdal)。因此,也许它甚至与fiona导入问题无关。另外,即时消息我100%下载了适用于python 2.7的fiona安装程序,因为我知道如果您使用供其他版本python使用的.pyd文件,则可能会出现问题。

请注意,即时通讯使用的是Python 2.7.5的独立安装,而不使用osgeo4w安装程序。


如果它需要GDAL 1.10,而您只有1.9无法使用
Nathan W

嗯,刚刚尝试过1.10,同样的故事
U2ros

@sgillies应该在某个地方。他也许能够提供帮助。
内森·W

似乎osx版本的fiona几个版本又出现了类似的问题,这与GDAL路径有关,我会玩更多...
U2ros

3
我不使用Windows,但是我会在lfd.uci.edu/~gohlke/pythonlibs/#fiona和GDAL安装程序:lfd.uci.edu/~gohlke/pythonlibs/#gdal中尝试Fiona安装程序。
sgillies

Answers:


4

这个持续存在的问题以前是由Fiona与GDAL不兼容引起的,但是Fiona已更新,因此以下答案可能更相关。

Fiona 1.8.9支持GDAL 3.0

说明文件:

增加了垫片模块和对GDAL 3.0的支持。该软件包现在可以构建并与GDAL 3.0和PROJ 6.1或6.2一起使用。请注意,我们将上传到PyPI的1.8.9车轮将包含GDAL 2.4.2和PROJ 4.9.3,与1.8.8车轮相同。


2

通过如何在ArcGIS脚本中运行OGR中介绍的方法安装GDAL之后,我遇到了完全相同的问题(包括设置环境变量)。我不确定它是否不起作用,但是它是基于旧的GDAL版本1.11,还是基于Python 2.7绑定,可能无法正常工作。

我按照上述步骤进行了修复,尤其是从http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal下载了最新的GDAL 2.1版。通过pip安装软件包,旧的GDAL版本已删除,并由最新版本代替。重新启动IDE之后,我可以导入gdal和fiona,而不会出现任何错误。


2

编辑202202021:

不确定现在的关联性如何,但已将旧的链接恢复为正常工作。

昨晚我有这个问题。要解决此问题,请确保您:

  1. 拥有GDAL库(安装核心.msi,然后安装python绑定.msi)
  2. 设置GDAL 环境变量。

我认为那是我所做的一切。如果不起作用,请告诉我,我将作进一步调查。

老1 老2


2
两个超链接都已过时--404未找到
jberrio

1

我有完全一样的问题。您需要使用http://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal中的GDAL软件包。可悲的是它是gdal 1.1。cf. http://sgillies.net/blog/1190/fiona-1-0-1/#comment2806


1.10永远不会超过1.9
U2ros

1
好吧,重要的评论!:我在某些计算机上仍然有此问题...为什么?因为我不阅读文字!在网站标题中,有一个关于依赖关系的警告...在无法正常工作的计算机上,我缺少可视化的c ++可再发行组件!
U2ros 2014年

1

旧问题,但将其留给偶然发现该问题的任何人:

杰夫·波音(Geoff Boeing)写了一篇很棒的教程,介绍如何安装geopandas库,该教程涵盖了安装fiona(以及其他库,例如shape,gdal,pyproj ...)。本教程位于:http : //geoffboeing.com/2014/09/using-geopandas-windows/

使我不胜其烦的步骤是我安装了previos osgeo(我认为是从安装postGIS来的),并且它与http://www.lfd.uci.edu/~gohlke/pythonlibs/#上的wheel文件的配合效果不佳菲奥娜

卸载所有相关的库,然后仅从那些滚轮文件进行构建,为我修复了DLL导入错误(使用Windows 10)


1

与其他人一样,让我与那些仍在Windows上仍在挣扎中并且具有相同python和gdal版本的人分享解决此问题的经验。

在我的情况,我得到了ImportError: DLL load failed: The specified module could not be found安装后的错误geopandas(0.6.2版本)畅达蟒蛇3.7.3,并试图同时导入时@中(3.0.2版)费欧娜(版本1.8.11) 。我在Windows 10(1709版)上。

尝试没有成功不同提议的解决方案之后(主要是以下杰夫波音指南在Windows上安装geopandas和安装克里斯托夫Gohlke的GDAL ),什么似乎让这对我是安装工作的Microsoft Visual C ++可再发行的Visual Studio 2015年,2017年和2019作为由Gohlke在其页面标题中指出,并由 @ U2ros

因此,无需安装Gohlke的车轮。您可以只使用conda或pip来安装fiona和geopandas。并且如该答案的更新所示,fiona确实支持GDAL版本3(版本1.8.9+)。


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
  • 然后,我检查了我的计算机是否具有适用于python的c ++编译器(此处带有一些有关您可能需要安装的信息的链接)。在某些论坛问题中,我读到GDAL需要此编译器才能工作。
  • 然后,我将Osgeo文件夹路径(存在fiona的dll)添加到我的路径环境变量中,这些照片来自我的PC 打印屏幕1 打印屏幕2

完成这些步骤后,我对fiona不再有任何问题。最初,我使用的是GDAL 1.1.4版,但从未与该版本一起使用。您可以先尝试使用版本1,如果它不起作用,请安装版本2.2.4。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.