2014-09-29 64 views
0

我今天下載了fiona。當我嘗試將其導入使用Python「進口菲奧娜」,我得到以下錯誤:fiona調用的「.c」文件。如何導入它們?

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」文件。我試着評論這些重要信息,看看是否有必要,但這當然會引發另一個錯誤。

Specifically, how do I resolve this import error?

更一般地說,如何解決涉及將C文件導入python庫的錯誤?

回答

3

您不能通過將所有文件複製到site-packages來安裝任何模塊。有些模塊是純Python,但有許多使用其他語言(C,C++,Fortran等)編寫的擴展,在使用之前需要編譯並鏈接到庫中,而其中的一些模塊就是其中之一。這個編譯可以在幾個階段完成 - 作者在將模塊作爲輪子分發之前,可​​以在pip install進程中,或者下載軟件包的源代碼,解壓縮/ tar目錄並運行python setup.py install。不幸的是,Windows默認沒有編譯器,因此您需要爲gcc或Visual Studio安裝和配置系統,或者使用其他方法,例如預編譯的安裝程序。幸運的是,fiona可從Christoph Gohlke的針對Windows版本庫的Python擴展包here獲得。下載適合您的版本和Python的安裝程序,刪除site-packages中的fiona文件夾,然後運行安裝程序。這個網站包含大量的科學計算軟件包,當我需要安裝一個新模塊時,特別是如果它有擴展名時,它是我的前往資源。

編輯

經進一步檢查,似乎fiona也需要GDAL模塊,以及six,兩者都可以從Gohlke的庫中下載。我第一次只安裝了fiona(我已經安裝了six),並且得到了缺少的DLL錯誤。然後我安裝了GDALimport fiona工作得很好 - 我對模塊不熟悉,所以我沒有做任何進一步的測試,但希望一切都應該現在工作。

+0

是的,我已經下載了預編譯的版本與正確的位,但它仍然給我一個「DLL加載失敗」,錯誤。我想我會從源代碼下載? – Candic3 2014-09-30 07:49:49

+1

@ Candic3請參閱我上面的修改。它看起來像fiona也需要GDAL。安裝它,你應該沒問題。 – MattDMo 2014-09-30 14:35:01

+0

最後一部分標題爲「編輯」的工作對我來說非常合適。在Gohlke的倉庫中安裝了easy_install,然後是fiona,然後是GDAL。作品。謝謝。 :) – Jens 2014-10-16 10:11:35

相關問題