Windows下Python环境安装GDAL

最近发现在Windows环境下安装gdal,rasterio等都会出现头文件缺失的问题,比如:

pip install gdal -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install rasterio -i https://pypi.tuna.tsinghua.edu.cn/simple

安装会下载tar.gz格式的gdal包,回报一些类似找不到头文件的错误,比如:

fatal error C1083: 无法打开包括文件: “cpl_conv.h”: No such file or directory
fatal error C1083: 无法打开包括文件: “gdal.h”: No such file or directory
ERROR: A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable.

对于此问题,通过以下方式解决:

1.去此网站https://www.gisinternals.com/archive.php,下载对应版本的gdal库,以gdal-3.6.2为例,主要下载两个包:

#lib库和头文件:release-1916-x64-gdal-3-6-2-mapserver-8-0-0-libs.zip
#dll和exe文件:release-1916-x64-gdal-3-6-2-mapserver-8-0-0.zip

2.下载下来后,解压libs文件后,分别将include和lib中的文件放到python的include和libs目录下,比如:

#将include下的文件全部拷贝到:D:\Programs\Anaconda3\envs\Py38\include目录下
#将lib下的文件拷贝到D:\Programs\Anaconda3\envs\Py38\libs目录下

或者(推荐)

#将include和lib中的文件分别放到D:\Programs\Anaconda3\envs\Py38\Library目录下的include,lib目录下
#将release-1916-x64-gdal-3-6-2-mapserver-8-0-0.zip解压,将bin中的所有文件,包括dll和exe等都放到D:\Programs\Anaconda3\envs\Py38\Library\bin目录下

3.然后设置环境变量

set GDAL_DATA=D:\Programs\Anaconda3\envs\Py38\Library\lib\gdal-data
#实验中安装了gdal-3.6.2-1916-x64-core.msi,这个安装包把gdal-3.6.2的可执行文件安装到C:\Program files\GDAL目录下,因此添加了环境变量
set PATH=%PATH%;"C:\Program files\GDAL"
set GDAL_DATA="C:\Program files\GDAL\gdal-data"

4.之后执行安装

pip install gdal==3.6.2 -i  https://pypi.tuna.tsinghua.edu.cn/simple
#如果提示缺少gdal.lib,去lib目录下,把gdal_i.lib复制一下,改名为gdal.lib即可。

以上是安装高版本gdal的方法,如果是在conda环境下,可以直接用conda安装

conda install gdal

对于安装好的环境,可以反向构造whl包

pip wheel --wheel-dir=./whl gdal==3.6.2  -i  https://pypi.tuna.tsinghua.edu.cn/simple

生成成功后,会提示相应的whl文件存储到了某个目录下,此时去该目录下把whl拷贝到其它离线机器上就可以直接安装了

pip install GDAL-3.6.2-cp38-cp38-win_amd64.whl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深蓝静音

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值