python3.9.6安装GDAL No such file or directory: 'gdal-config”错误

一、问题背景

       由于需要用python打包一个django工程发布的k8s集群,当我用python官方镜像3.9.6版本进行构建镜像进行打包时,再进行pip install gdal包安装时,发生了gdal-config找不到的情况。

二、问题解决

        经过百度,也没找到太easy的解决方案。经过各种资料信息搜寻,问题点在于python:3.9.6的基础系统用的是deban10(buster),里面并没有安装gdal-config,通过官网发现gdal已经推出了stable 版本 gdal3.2.2版本了,如下所示:

 

但是该版本支持的是deban11(bullseye),所以只要使用bullseye的系统版本,通过apt进行安装应该就能解决gdal的安装问题,找下python官网镜像,是否可以有bullseye的版本,果然

先验证下,docker run 起来python:3.9.6-bullsye镜像后,查看/etc/apt/sources.list

nice, 然后通过apt命令进行gdal3.2.2的安装

apt-get update && apt-get install -y gdal-bin libgdal-dev --no-install-recommends && rm -rf /var/lib/apt/lists/*

经过漫长但又不太长(1-2min)的等待,安装完毕,然后验证下gdal-config是否已经存在

输入命令gdap-config --version,输出如下:

通过pip list 查看,GDAL:3.2.2已经安装成功。

######################书接上回#########################

三、新问题ModuleNotFoundError: No module named '_gdal_array'

在上面安装好gdal之后,程序运行过程中抛出了一个错误“ModuleNotFoundError: No module named '_gdal_array'”

导致这个问题的原因,是因为没有先安装numpy

解决方案如下:

1、先卸载gdal

pip uninstall gdal

2、安装numpy

pip install numpy

3、再安装gdal

pip install gdal==$(gdal-config --version) --global-option=build_ext --global-option="-I/usr/include/gdal"

4、验证

找到python安装lib下的osgeo,打印下

ls /usr/local/lib/python3.9/site-packages/osgeo/ #修改成自己的

如果有_gdal_array的.so文件才没问题

你可能感兴趣的:(python3.9.6安装GDAL No such file or directory: 'gdal-config”错误)