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

Python 3.9环境下AWS Lambda Layer集成LangChain的问题排查

AWS Lambda Python3.9层LangChain依赖问题解决指南

问题场景

要为AWS Lambda构建基于Python3.9的Layer,该Lambda需调用langchain.prompts、langchain.retrievers、langchain.llms、langchain.chains模块。由于LangChain依赖的pydantic存在兼容问题,必须固定架构与Python版本。

尝试方案1及问题

requirements.txt内容:

langchain[all]

执行安装命令:

pip install -r requirements.txt --platform manylinux1x86_64 --python-version 39 --only-binary=:all:

该命令避免了pydantic兼容问题,但Lambda调用时触发错误:

Can not import PrompTemplate from langchain.prompts ... Runtime Import Module

尝试方案2及问题

修改requirements.txt为:

langchain
langchain.prompts
langchain.retrievers
langchain.llms.bedrock
langchain.chains

执行相同pip安装命令时失败,报错:

Can not find a version that satisfies the requirement langchain.prompts ( from version:none)

核心解决思路

先解决方案2的安装失败问题

langchain.prompts、langchain.retrievers这类是LangChain主包的子模块,并非独立的PyPI包,不需要单独在requirements.txt中声明,只需安装主包langchain即可,所有子模块会随主包一并安装。

再解决方案1的导入错误问题

  1. 检查代码拼写:报错中的PrompTemplate是拼写错误,正确应为PromptTemplate,确认Lambda代码中导入语句为:
    from langchain.prompts import PromptTemplate
    
  2. 规范Layer目录结构:Lambda Layer的Python依赖必须放在python/lib/python3.9/site-packages/目录下,安装时需指定目标路径:
    pip install -r requirements.txt --platform manylinux1x86_64 --python-version 39 --only-binary=:all: -t python/lib/python3.9/site-packages/
    
    之后将python目录打包为zip文件上传作为Layer。
  3. 固定LangChain版本:为避免版本兼容问题,在requirements.txt中指定稳定兼容的版本,例如:
    langchain==0.0.289
    
    该版本与Python3.9、pydantic(要求<2.0.0,>=1.10.7)兼容度较好。
  4. 验证依赖版本:安装完成后可执行pip freeze查看依赖列表,确认pydantic版本处于LangChain要求的范围内,避免冲突。

总结

  • 仅需在requirements.txt中声明langchain(建议固定版本),无需单独列出子模块
  • 安装时严格指定平台、Python版本与二进制包选项,避免本地环境干扰
  • 确保Layer目录结构符合Lambda要求,依赖放置路径正确
  • 检查代码中的导入语句拼写,避免低级错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 03:16:03