geopandas安装问题记录:ImportError,DLL load failed-windows10

北慕城南 提交于 2020-05-02 16:13:46

[toc]

1. 起因

由于最近在处理遥感影像、空间矢量数据需要自己写代码实现,就决定用Ananconda在windows10上配置一个地理科学计算的Python环境,在安装geopandas时遇到了一些问题。 什么是geopandas?

<table><tr><td bgcolor=#DCDCDC> GeoPandas是一个开源项目,Pandas是Python的一个结构化数据分析的利器,GeoPandas扩展了pandas使用的数据类型,允许对几何类型进行空间操作,DataFrame相当于GIS数据中的一张属性表,使得可以直接操作矢量数据属性表,其目标是使得在python中操作地理数据更方便。</td></tr></table>

使用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

却报错:<font color=red>ImportError: DLL load failed: 找不到指定的模块.</font>

可是明明提示安装成功了啊,通过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,安装方式如 <font color=red>pip install GDAL‑2.3.3‑cp36‑cp36m‑win_amd64.whl</font> 然后安装其他几个依赖项,如果安装过程中报错,有提示缺少VC++ redistributable,则下载对应的VC++分发包安装,再继续安装。
  4. 安装geopandas:直接输入命令:
    pip install geopandas

即可完成geopandas安装。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!