ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-03-06 11:03:01  阅读:820  来源: 互联网

标签:load ImportError geopandas pip conda forge 安装 GDAL


目录

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位

(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安装。

标签:load,ImportError,geopandas,pip,conda,forge,安装,GDAL
来源: https://www.cnblogs.com/madhevin/p/10481879.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有