我今天下载了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
我检查了我的site-packages文件夹,ogrext是一个“C”文件。我试着注释掉导入以查看是否有必要,但这当然引发了另一个错误。
具体来说,我该如何解决此导入错误?
更一般地说,如何解决涉及将C文件导入python库的错误?
答案 0 :(得分:3)
您不能通过将所有文件复制到site-packages
来安装任何模块。有些模块是纯Python,但有许多模块使用其他语言编写的扩展(C,C ++,Fortran等),在使用之前需要编译并链接到库中,fiona
就是其中之一。这个编译可以在几个阶段完成 - 作者,在将模块作为轮子分发之前,在pip install
过程中,或者通过下载软件包的源代码,解压缩/ tar化它,以及运行{{ 1}}。遗憾的是,Windows默认情况下没有编译器,因此您需要为gcc或Visual Studio安装和配置系统,或者使用其他方法,例如预编译的安装程序。幸运的是,python setup.py install
可从Christoph Gohlke的Windows扩展程序包(Windows资源库here)获得。下载适用于您的版本和Python版本的安装程序,删除fiona
中的fiona
文件夹,然后运行安装程序。这个站点包含大量用于科学计算的软件包,当我需要安装新模块时,它是我的首选资源,特别是如果它有扩展模块。
修改强>
进一步检查后,site-packages
似乎还需要GDAL
模块以及six
,这两个模块都可以从Gohlke的存储库下载。我首先只安装了fiona
(我已经安装了fiona
),并且丢失了DLL错误。然后我安装了six
,GDAL
工作得很好 - 我对模块不熟悉,所以我没有做任何进一步的测试,但希望现在一切都能正常工作。< / p>