AWS Glue导入geopandas失败提示缺失pyproj模块如何解决?
解决方案
问题根因
geopandas本身不会自动绑定安装兼容版本的底层依赖包pyproj,且AWS Glue的托管运行环境为定制化Linux环境,对二进制包的编译环境有特殊要求,仅单独安装geopandas的WHL/EGG/PIP包会出现依赖缺失问题。
修复步骤
步骤1:配置全量依赖包安装参数
不要单独安装geopandas包,直接在AWS Glue控制台的作业参数中添加全量依赖安装配置:
新增作业参数:
键:--additional-python-modules
值:geopandas==0.12.2,pyproj==3.4.1,fiona==1.8.22,shapely==1.8.5
注:以上版本适配Glue 3.0/4.0运行环境,可根据你使用的Glue版本调整对应包的兼容版本号。步骤2:修复运行时包加载路径问题
如果配置后仍抛出相同报错,可在作业代码开头手动添加Glue的第三方包安装路径:
你也可以加入以下调试代码确认包的实际安装位置:import sys sys.path.insert(0, "/glue/lib/installation")import sys import site print("Python运行路径列表:", sys.path) print("Site包默认安装路径:", site.getsitepackages())步骤3:预编译Wheel包兜底方案
如果上述PIP在线安装方式因为网络或环境兼容问题失败,可提前在和Glue运行环境一致的Amazon Linux 2实例中,编译对应Python版本的pyproj、geopandas及其余依赖的Wheel包,上传到S3存储桶后,在作业参数--extra-py-files中配置所有包的S3路径即可。
注意:所有依赖包的版本必须互相兼容,避免出现版本不匹配导致的依赖加载失败问题。
内容的提问来源于stack exchange,提问作者Sudhir
相关产品推荐
相关产品推荐

