You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在AWS EMR上安装Great Expectations遇numpy版本兼容问题

解决AWS EMR上Great Expectations启动时的numpy版本兼容问题

问题分析

你遇到的ImportError是因为Great Expectations依赖的pandas版本要求numpy >=1.17.3,但EMR集群默认预装了numpy 1.16.5,且这个系统级的numpy没有被pip卸载操作完全替换——pip卸载的只是用户通过pip安装的numpy实例,系统自带的版本依然存在并被优先调用。

解决方案

修改你的bootstrap脚本,在安装Great Expectations之前强制升级numpy到符合要求的版本,具体步骤如下:

  1. 更新bootstrap脚本内容:
    在安装great-expectations之前,先添加numpy的升级命令,并且使用--force-reinstall确保覆盖系统自带的旧版本:

    #!/bin/bash
    sudo yes | sudo yum install python3-devel
    sudo python3 -m pip install --upgrade pip
    sudo python3 -m pip install cython
    
    sudo python3 -m pip install boto3==1.26.37
    # 强制升级numpy到兼容版本
    sudo python3 -m pip install --force-reinstall numpy==1.21.6
    sudo python3 -m pip install great-expectations==0.15.36
    

    选择numpy==1.21.6是因为它既满足pandas对numpy >=1.17.3的要求,也能和Great Expectations 0.15.36稳定兼容。

  2. 验证版本(可选):
    可以在bootstrap脚本末尾添加验证命令,确保numpy版本正确:

    sudo python3 -c "import numpy; print('numpy版本:', numpy.__version__)"
    

为什么之前的卸载命令没用?

EMR集群中,numpy可能是通过yum预装的系统级包,仅用pip uninstall无法移除系统自带的版本。使用pip install --force-reinstall会强制将指定版本的numpy安装到Python的site-packages目录,覆盖系统默认版本的引用路径,从而解决版本冲突问题。

内容的提问来源于stack exchange,提问作者Liu Piu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 14:40:24