0

我今天下载了fiona。当我尝试使用“import fiona”在 Python 中导入它时,出现以下错误:

Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import fiona
  File "C:\Python27\lib\site-packages\fiona\__init__.py", line 72, in <module>
    from fiona.collection import Collection, supported_drivers, vsi_path
  File "C:\Python27\lib\site-packages\fiona\collection.py", line 7, in <module>
    from fiona.ogrext import Iterator, ItemsIterator, KeysIterator
ImportError: No module named ogrext

我检查了我的站点包文件夹,而 ogrext 是一个“C”文件。我尝试注释掉导入以查看是否没有必要,但这当然会引发另一个错误。

具体来说,如何解决此导入错误?

更一般地说,如何解决涉及将 C 文件导入 python 库的错误?

4

1 回答 1

3

您不能通过将所有文件复制到site-packages. 一些模块是纯 Python 的,但也有许多用其他语言(C、C++、Fortran 等)编写的扩展,在使用之前需要编译并链接到库中,并且fiona是其中之一。这个编译可以在几个阶段完成——由作者,在将模块作为轮子分发之前,在这个pip install过程中,或者通过下载包的源代码,解压缩/压缩,然后运行python setup.py install​​. 不幸的是,Windows 默认不附带编译器,因此您要么需要为 gcc 或 Visual Studio 安装和配置系统,要么使用其他方法,例如预编译安装程序。幸运的是,fiona可以从 Christoph Gohlke 的 Python Extension Packages for Windows Repository 获得在这里。下载适用于您的 Python 版本和位数的安装程序,删除 中的fiona文件夹site-packages,然后运行安装程序。该站点包含大量用于科学计算的软件包,当我需要安装新模块时,它是我的首选资源,尤其是在它有扩展的情况下。

编辑

经过进一步检查,似乎fiona还需要该GDAL模块,以及six,这两者都可以从 Gohlke 的存储库中下载。我第一次fiona只安装(我已经six安装了),并得到一个缺少 DLL 的错误。然后我安装了GDAL,并且import fiona工作得很好——我不熟悉这个模块,所以我没有做任何进一步的测试,但希望现在一切正常。

于 2014-09-29T22:42:08.163 回答