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

如何在AWS Lambda中导入Langchain模块?解决orjson依赖报错

解决AWS Lambda导入Langchain时orjson.orjson缺失的问题

原因分析

Langchain的部分间接依赖(如pydantic)会调用orjson,而orjson是二进制扩展包,必须匹配Lambda运行时的x86_64架构和对应Python版本才能正常加载。你之前的打包方式可能未处理好该依赖的兼容性。

可行解决方案

方案1:基于Lambda官方镜像打包依赖

这是最可靠的方式,确保依赖完全兼容Lambda环境:

  • 拉取对应Python版本的Lambda官方镜像(以Python 3.10为例):
    docker pull public.ecr.aws/lambda/python:3.10
    
  • 启动临时容器并挂载本地目录:
    docker run -it --rm -v $(pwd):/app public.ecr.aws/lambda/python:3.10 bash
    
  • 在容器内将Langchain安装到指定目录:
    pip install langchain -t /app/python
    
  • 退出容器后,将python目录压缩为zip包:
    zip -r langchain-layer.zip python/
    
  • 将该zip包上传为Lambda Layer,关联到你的Lambda函数。

方案2:强制使用纯JSON库替代

如果不需要orjson的性能优势,可让依赖 fallback 到纯Python实现:

  • 新建requirements.txt文件,内容如下:
    langchain
    orjson==3.9.10 --no-binary :all:
    
  • 按照方案1的容器步骤完成打包,这样会安装纯Python版本的orjson(或触发依赖切换到标准库json)。

方案3:对齐Lambda运行时版本

检查你的Lambda函数Python运行时版本,确保和打包依赖时使用的Python版本完全一致(比如打包用Python 3.10,Lambda也要设置为Python 3.10),版本不匹配会导致二进制依赖加载失败。

方案4:弃用第三方公开Layer

第三方公开Layer可能存在Python版本、架构不匹配的问题,优先使用自己基于Lambda官方镜像构建的Layer。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 09:02:06