无法导入模块“lambda_function”:无法从“lxml”导入名称“etree”(/opt/python/lib/python3.11/site-packages/lxml/__init__.py)

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

我尝试在 AWS Lambda 中运行使用

lxml
库的 Python 脚本,但遇到导入错误:

Response
{
  "errorMessage": "Unable to import module 'lambda_function': cannot import name 'etree' from 'lxml' (/opt/python/lib/python3.11/site-packages/lxml/__init__.py)",
  "errorType": "Runtime.ImportModuleError",
  "requestId": "9a37109e-1cc3-4800-8a4e-c70c5c7bfe20",
  "stackTrace": []
}

在我的 AWS Lambda 函数中?

在我的研究中,我发现lxml是一个依赖于操作系统的库。这似乎会导致问题,因为我无法将它用作 AWS Lambda 中的层,它安装在不同的操作系统 (Windows/Mac/Linux) 上。

有没有办法在 AWS 中安装

lxml
并将其添加为 AWS Lambda 的层?如何解决此问题并在我的 AWS Lambda 函数中成功导入 lxml?

我在这里使用Python 3.11。

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

创建 lambda 时,您指定它将运行的架构。

在撰写本文时,您可以选择 x86_64 和 arm64。

无论架构如何,Lambda 运行时都使用 Amazon Linux(此处的包含针对不同运行时的 Amazon Linux 版本)。它不使用 Windows 或 Mac。

只要您的层与 Lambda 的架构相匹配并使用主机系统提供的依赖项,您完全可以将所有依赖项放入一个层中。

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