Amazon EMR 6.14.0集群启动失败:无法找到geopandas==0.14.0版本
解决EMR 6.14.0安装geopandas 0.14.0失败的问题
核心原因
EMR 6.14.0默认搭载的Python版本是3.7.16,而geopandas 0.14.0要求Python 3.8及以上,版本不兼容是导致安装失败的主要原因。另外,旧版本的pip也可能无法正确识别PyPI上的新包版本信息,进一步加剧问题。
可行解决方案
方案1:降级geopandas到兼容Python 3.7的版本
geopandas 0.12.2是支持Python 3.7的最高稳定版本,修改引导脚本如下:
#!/usr/bin/env bash set -e python3 -m pip install geopandas==0.12.2
方案2:升级pip后尝试安装
先升级pip到最新版本,确保它能正确获取PyPI的包信息,再尝试安装:
#!/usr/bin/env bash set -e python3 -m pip install --upgrade pip python3 -m pip install geopandas==0.14.0
注:如果还是失败,大概率是Python版本不兼容的问题,建议换方案1或3
方案3:在集群中安装Python 3.8+再安装geopandas
如果必须使用geopandas 0.14.0,可以先在EMR节点上安装更高版本的Python:
#!/usr/bin/env bash set -e # 安装Python 3.8及依赖 sudo yum install -y python38 python38-devel # 升级Python 3.8对应的pip python3.8 -m pip install --upgrade pip # 安装geopandas 0.14.0 python3.8 -m pip install geopandas==0.14.0
注意:后续使用时要指定用python3.8来运行代码
方案4:从源码编译安装(备选)
如果预编译的轮子不兼容EMR的系统环境,可以尝试源码编译:
#!/usr/bin/env bash set -e python3 -m pip install --upgrade pip # 安装编译所需的系统依赖 sudo yum install -y gcc gcc-c++ geos-devel proj-devel # 强制从源码安装geopandas python3 -m pip install geopandas==0.14.0 --no-binary :all:
内容的提问来源于stack exchange,提问作者Hongbo Miao
相关产品推荐
相关产品推荐

