python 中的 fiona 导入问题

fiona import issues in python

我已经使用 whl 发行版安装了 fiona.. 但在导入时出现以下错误:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-b0161244e1be> in <module>()
----> 1 import fiona
      2 with fiona.open(r'C:\Users\harish.padi\Downloads\BSP\BSP\BSP_default_pred.shp', 'r') as input:
      3     with open(r'C:\Users\harish.padi\Downloads\BSP\BSP\output.txt', 'w') as output:
      4        for pt in input:
      5            id = pt['properties']['id']

c:\program files\python36\lib\site-packages\fiona\__init__.py in <module>()
     75     pass
     76 
---> 77 from fiona.collection import Collection, BytesCollection, vsi_path
     78 from fiona._drivers import driver_count, GDALEnv
     79 from fiona.drvsupport import supported_drivers

c:\program files\python36\lib\site-packages\fiona\collection.py in <module>()
      7 
      8 from fiona import compat
----> 9 from fiona.ogrext import Iterator, ItemsIterator, KeysIterator
     10 from fiona.ogrext import Session, WritingSession
     11 from fiona.ogrext import (

ImportError: DLL load failed: The specified module could not be found.

任何人都可以提出解决方案吗?

您缺少 OGR、GDAL 或两者的 DLL。您的 post 缺乏操作系统等详细信息,所以我能做的最好的就是让您参考安装说明:

http://toblerity.org/fiona/README.html#installation

此外,我注意到您似乎在使用 Python 3.6。引用说明:

"Fiona requires Python 2.6, 2.7, 3.3, or 3.4 and GDAL/OGR 1.8+."

这也可能是一个潜在问题。

我在安装 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.

最后它对我有用吗?

  • 我从这个 link
  • 安装了发行版 GDAL 2.2.4 和 Fiona
  • 然后我检查了我的计算机是否有用于 python 的 c++ 编译器(here link 以及有关您可能需要安装哪个编译器的一些信息)。在一些论坛问题中,我读到 GDAL 需要这个编译器才能工作。
  • 然后我将 Osgeo 文件夹路径(有 fiona 的 dll)添加到我的路径环境变量,一些来自我电脑的图片 Print screen 1 Print screen 2

完成这些步骤后,我再也没有遇到 fiona 的问题。起初,我使用的是 GDAL 版本 1.1.4,但它从未与这个一起使用。你可以先用版本一试试,如果不行再安装版本2.2.4

也许最好提及 GDAL 2.2.4 适用于 Python 2.7(如 link 提供的那样)。

我在 Python 3.7、Fiona 1.8.6 和 GDAL 3.0.0

中遇到了相同的导入错误问题

通过用 2.2.4 替换 GDAL 3.0.0 我让它工作了,没有考虑其他细节