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

FastAPI部署AWS Lambda遇阻:模块导入与依赖问题求助

AWS Lambda部署FastAPI应用的依赖导入问题

问题背景

尝试将BookContentToYoutubeVideos代码库部署到AWS Lambda,已在main.py中用Mangum封装FastAPI应用:

app = FastAPI()
handler = Mangum(app)

配置Lambda处理程序为main.handler后,先后遇到两个错误:

错误1:找不到main模块

报错信息:

{
  "errorMessage": "Unable to import module 'main': No module named 'main'",
  "errorType": "Runtime.ImportModuleError",
  "requestId": "3f597b25-74db-4db5-9c9a-788782883812",
  "stackTrace": []
}

推测是Windows直接压缩导致路径结构错误,改用WSL打包后,出现新错误。

错误2:找不到pydantic_core._pydantic_core

报错信息:

"Unable to import module 'main': No module named 'pydantic_core._pydantic_core'",

本地依赖文件夹及Lambda压缩包中均存在该模块,但仍无法导入。


问题原因

  1. main模块找不到:Windows压缩时可能将文件嵌套在子文件夹中,Lambda要求压缩包根目录直接包含main.py等核心文件。
  2. pydantic_core依赖不兼容:直接用WSL的pip安装依赖,可能下载了与Lambda运行环境(Amazon Linux)不匹配的二进制包,导致无法加载。

正确打包步骤(适配Lambda)

在WSL或Linux环境执行以下操作:

  1. 创建空目录(如lambda_deploy),将项目所有.py文件复制到该目录根下
  2. 安装兼容Lambda的依赖:
    pip install -r requirements.txt -t . --platform manylinux2014_x86_64 --only-binary=:all:
    
  3. 压缩目录内所有内容(确保根目录是文件,不是文件夹):
    zip -r lambda_artifact.zip .
    
  4. 将生成的lambda_artifact.zip上传至Lambda函数

额外检查项

  • 确认Lambda的Python运行时版本与本地开发版本完全一致(如均为3.10)
  • 解压压缩包验证:main.py直接在根目录,pydantic_core目录下存在_pydantic_core.so(Linux二进制文件)
  • 排除不必要的文件:不要把虚拟环境、Windows系统文件(如.exe、.pyd)打包进去

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 16:05:11