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

[toc]python

1. 原由

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

<table><tr><td bgcolor=#DCDCDC> GeoPandas是一個開源項目,Pandas是Python的一個結構化數據分析的利器,GeoPandas擴展了pandas使用的數據類型,容許對幾何類型進行空間操做,DataFrame至關於GIS數據中的一張屬性表,使得能夠直接操做矢量數據屬性表,其目標是使得在python中操做地理數據更方便。</td></tr></table>shell

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

2. 解決辦法

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

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

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

conda install -c conda-forge geopandas

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

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

import geopandas

卻報錯:<font color=red>ImportError: DLL load failed: 找不到指定的模塊.</font>ip

但是明明提示安裝成功了啊,經過conda list能夠查看到安裝列表。 再輸入:ci

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,安裝方式如 <font color=red>pip install GDAL‑2.3.3‑cp36‑cp36m‑win_amd64.whl</font> 而後安裝其餘幾個依賴項,若是安裝過程當中報錯,有提示缺乏VC++ redistributable,則下載對應的VC++分發包安裝,再繼續安裝。
  4. 安裝geopandas:直接輸入命令:
pip install geopandas

便可完成geopandas安裝。

相關文章
相關標籤/搜索