SAM构建报错:PythonPipBuilder解析numexpr==2.10.1(wheel)依赖求助
解决SAM构建时PythonPipBuilder解析numexpr依赖失败的问题
以下是几个可行的解决思路:
指定兼容的numexpr版本
检查项目的requirements.txt,将numexpr==2.10.1替换为范围版本(如numexpr>=2.8.4,<3),或者确认该版本是否有对应Python3.10 x86_64的预编译wheel包。部分特定版本可能在SAM构建环境的pip源中缺少适配的wheel,导致解析失败。使用容器化构建
执行SAM构建时添加--use-container参数,让SAM在AWS提供的官方镜像中完成依赖安装,确保环境与Lambda运行时一致:sam build --use-container添加编译依赖前置命令
如果必须使用numexpr==2.10.1,可以在SAM模板中配置预构建命令,安装编译所需的系统依赖(numexpr编译需要C编译器和numpy开发库)。修改template.yaml中函数的Metadata部分:Resources: RagAppFunction: Type: AWS::Serverless::Function Properties: CodeUri: rag_app/ Runtime: python3.10 Handler: app.lambda_handler Metadata: BuildMethod: python3.10 BuildCommand: | yum install -y gcc gcc-c++ numpy-devel && pip install -r requirements.txt本地预打包依赖
在本地创建Python3.10虚拟环境,安装所有依赖后将依赖包复制到项目目录,让SAM直接使用已安装的依赖:# 创建并激活虚拟环境 python3.10 -m venv .venv source .venv/bin/activate # 升级工具并安装依赖 pip install --upgrade pip wheel pip install numexpr==2.10.1 # 复制依赖到项目目录 cp -r .venv/lib/python3.10/site-packages/* rag_app/ # 执行SAM构建 sam build
内容的提问来源于stack exchange,提问作者dhruvmalik
相关产品推荐
相关产品推荐

