无法导入模块“main”:将 FastAPI 应用程序部署到 AWS Lambda 时没有名为“pydantic_core._pydantic_core”的模块

问题描述 投票:0回答:1

我正在我的 MacOS 机器上按照 本教程工作。

我正在尝试将我的 FastAPI 应用程序部署到 AWS Lambda。

我推出了

pip install fastapi uvicorn mangum

这些是我得到的依赖项:

Package           Version
----------------- -------
annotated-types   0.7.0
anyio             4.4.0
click             8.1.7
fastapi           0.114.1
h11               0.14.0
idna              3.8
mangum            0.17.0
pip               24.2
pydantic          2.9.1
pydantic_core     2.23.3
sniffio           1.3.1
starlette         0.38.5
typing_extensions 4.12.2
uvicorn           0.30.6

然后只留下

fastapi
mangum
,正如教程中的人所说:

fastapi==0.114.1
mangum==0.17.0

然后我创建了我的应用程序:

from fastapi import FastAPI
from mangum import Mangum

app = FastAPI()
handler = Mangum(app)

@app.get("/")
async def hello():
    return {"message": "Hello World"}

然后跑了:

 pip3 install -t dependencies -r requirements.txt 

然后:

(cd dependencies; zip ../aws_lambda_artifact.zip -r .)

最后:

zip aws_lambda_artifact.zip -u main.py 

然后我将

zip
文件上传到 AWS Lambda,但我得到:

{
  "errorMessage": "Unable to import module 'main': No module named 'pydantic_core._pydantic_core'",
  "errorType": "Runtime.ImportModuleError",
  "requestId": "",
  "stackTrace": []
}

这是运行时环境:

env

你能帮我吗? Lambda 和我的 Mac 都运行 ARM64。

python amazon-web-services lambda fastapi python-3.12
1个回答
0
投票

删除旧的 lambda 并使用新的:

 pip install --platform manylinux2014_x86_64 --target=python --implementation cp --python-version 3.10 --only-binary=:all: --upgrade openai

按照以下方式压缩内容:

https://docs.aws.amazon.com/lambda/latest/dg/python-package.html#python-package-native-libraries

这里是详细讨论:https://github.com/pydantic/pydantic/issues/6557#issuecomment-1937751778

© www.soinside.com 2019 - 2024. All rights reserved.