geopandas安裝問題記錄:ImportError,DLL load failed-windows10


1. 起因

由於最近在處理遙感影像、空間矢量數據需要自己寫代碼實現,就決定用Ananconda在windows10上配置一個地理科學計算的Python環境,在安裝geopandas時遇到了一些問題。
什么是geopandas?

GeoPandas是一個開源項目,Pandas是Python的一個結構化數據分析的利器,GeoPandas擴展了pandas使用的數據類型,允許對幾何類型進行空間操作,DataFrame相當於GIS數據中的一張屬性表,使得可以直接操作矢量數據屬性表,其目標是使得在python中操作地理數據更方便。

使用pip在Linux和Mac上安裝geopandas可能很簡單。然而由於它的幾個依賴包都有C擴展,直接安裝會導致在Windows上編譯失敗,最終安裝失敗。安裝geopandas之前需要先安裝依賴項 GDAL, Fiona , pyprojrtreeshapely

2. 解決辦法

環境:Windows 10 64位
可以使用conda安裝(簡單),也可以使用pip安裝(麻煩些)

(1). 使用Anaconda(帶有大量科學計算包的發行版Python)安裝

這種方法比較簡單,尤其是只想快速搭建環境的數據科學處理人員。切換到你的目標虛擬環境后,在命令行輸入:

conda install -c conda-forge geopandas

-c conda-forge表示指定包下載渠道為conda-forge倉庫,conda-forge是一個社區組織,維護了大量的由conda管理的開源軟件集合,geopandas目前在官方conda倉庫是沒有的,conda-forge包相對較全也較新。

執行該命名后conda會自動從conda-forge下載安裝geopandas所依賴的項,然后安裝geopandas,一步到位。
這種方法可能會失敗,我這里就失敗了,看起來所有安裝都成功了,但是調用geopandas時輸入

import geopandas

卻報錯ImportError: DLL load failed: 找不到指定的模塊.

可是明明提示安裝成功了啊,通過conda list可以查看到安裝列表。
再輸入:

import sys
'geopandas' in sys.modules

返回False,說明表面上看起來安裝完成了,實際上geopandas是沒有安裝成功的。
通過分析發現:直接從conda-forge安裝的Fiona是有問題的,雖然安裝成功了,但是import 卻提示失敗,說明不能用。於是我就從 Gohlke(Python非官方的Windows二進制擴展包)下載Fiona,輸入:

pip install + 文件全路徑名

安裝成功了,此時再測試geopandas是可用的,說明問題解決了。可以看出從conda-forge直接安裝的Fiona在我這里是不能用的。

(2). 手動pip安裝

這種方法較第一種方法來說麻煩一些,需要手動下載、安裝多個包。

  1. 卸載已經存在的依賴包首先也是最重要的一點,不要直接使用pip或conda安裝,通常會出現一些模糊的或莫名其妙的錯誤,使故障分析變得困難。如果OSGeo4W、GDAL、Fiona、pyproj、rtree或shapely已經安裝,卸載它。后面下載的GDAL wheel文件已經包含一個完整的GDAL—不需要將它與OSGeo4W一起使用。
  2. 下載依賴包GDAL, Fiona , pyprojrtreeshapely,選擇對應你的Python版本的項。
  3. 安裝下載的依賴項:使用pip命令安裝,先安裝GDAL,安裝方式如 pip install GDAL‑2.3.3‑cp36‑cp36m‑win_amd64.whl 然后安裝其他幾個依賴項,如果安裝過程中報錯,有提示缺少VC++ redistributable,則下載對應的VC++分發包安裝,再繼續安裝。
  4. 安裝geopandas:直接輸入命令:
    pip install geopandas

即可完成geopandas安裝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM