前情提要
最近在上看到一些基于geopandas的地图制作方法,使用了geopandas,可是这个包和gdal一样难装,装好之后还出现好几个问题,留下这篇帖子给自己还有需要的小伙伴看看。
首先我之前
环境
我在安装geopandas中签,已经用过一段时间的gdal和rasterio,这次想用geopandas却不太能很好的安装。
我之前安装的环境是
anaconda-3
python 3.8
gdal-3.1.4
geopandas需要的环境还有 shapely、Fiona
整体的逻辑是gdal+Fiona+shapely->geopandas
其中Fiona还依赖gdal,所以安装好这三个包,geopandas就很轻松了。
我安装的时候,https://www.lfd.uci.edu/~gohlke/pythonlibs/
https://www.lfd.uci.edu/~gohlke/pythonlibs/已经不提供gdal-3.1.4的Python3.7以上包了,所以非常的烦,我只能使用gdal-3.3.3。
最终安装后的版本如下
安装方法1
conda直接安装
开始菜单里找到anaconda文件夹里的 Anaconda Prompt (Anaconda3)
输入如下命令
conda install geopandas
等待一段时间后会出现如下界面,conda会自动帮你补全需要的包,选择y就好。(这里我之前安装过gdal了,所以可能会有点不同)。
这样会直接安装好geopandas,不过版本是0.6.1,其他三个依赖的包版本也列在下面。
这样是可以直接用的,如果这个版本已经可以满足你的需求,那么到这里本文就结束了。
但是如果你已经安装了gdal更高的版本,或者是需要geopandas更新的版本的话,你需要用到安装方法2。
安装方法2
下载离线whl文件,使用本地安装,首先进入Pythonlibs
https://www.lfd.uci.edu/~gohlke/pythonlibs/
https://www.lfd.uci.edu/~gohlke/pythonlibs/寻找gdal、shapely、Fiona、geopandas四个包
我都选择的当前最新版本:
gdal-3.3.3
Fiona-1.8.20
shapely-1.8.0
geopandas-0.10.2
这里根据自己的Python版本来下载就好
之后就很简单了,开始菜单里找到anaconda文件夹里的 Anaconda Prompt (Anaconda3),找到自己下载whl的文件夹,切换盘直接输入E:就可以,打开文件夹用cd。
进入目录后,复制文件名,使用下面的代码,输入自己的文件名就好,可以用conda的本地安装方法,但我觉得pip简单一点哈哈。按照GDAL、Fiona、Shapely、geopandas的顺序来就没问题。
pip install GDAL-3.3.3-cp38-cp38-win_amd64.whl
pip install Fiona-1.8.20-cp38-cp38-win_amd64.whl
pip install Shapely-1.8.0-cp38-cp38-win_amd64.whl
pip install geopandas-0.10.2-py2.py3-none-any.whl
到这里,就成功安装了geopandas-0.10.2,回到了文章最开始的结果图。
安装过程遇到的问题
问题1
安装过程还是遇到很多问题,比如四个包的文件对应问题,我一开始是想选一个中间版本的,但是四个包的对应还挺麻烦的,我就干脆都选择了最新版本,但是我第一次安装好后,打开prompt,conda提示我下面的问题:
系统找不到指定的路径。
E:\IDM>set "GDAL_DRIVER_PATH="
这个问题我没有解决,后来我重装了全部四个包,这个问题才解决,我猜测是环境路径的问题,因为我在个人环境路径里找到这个环境。如果你遇到了类似的问题,可以试着设置一下这个用户变量
在用户路径中选择添加,然后填上,变量值记得设置到自己的路径里。
问题2
ERROR 1: PROJ: proj_create_from_database: Cannot find proj.db
这是我在跑代码的时候遇到的,是gdal的一个问题,我试着装回2.x的老版本,是没有这个问题的,我还是觉得是环境路径的问题,但是我在个人环境路径里是有这个内容的,文件夹下面也有proj.db的文件。
这个问题我就没有解决了。