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

AWS Lambda(Python3.11)中lxml.etree导入失败的解决方法问询

解决AWS Lambda中Python 3.11导入lxml的问题

你遇到的导入错误如下:

{
  "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 Cloud9环境构建(推荐,无需额外管理EC2)

  1. 创建Cloud9环境,选择Amazon Linux 2023实例(匹配Python 3.11的Lambda运行时环境)
  2. 在Cloud9终端执行以下命令安装依赖和lxml:
    • 安装系统编译依赖和Python 3.11:
      sudo dnf install -y python3.11 python3.11-pip gcc libxml2-devel libxslt-devel
      
    • 创建Lambda层要求的目录结构:
      mkdir -p lxml-layer/python/lib/python3.11/site-packages
      
    • 将lxml安装到指定目录:
      python3.11 -m pip install lxml -t lxml-layer/python/lib/python3.11/site-packages/
      
    • 进入目录并打包成zip:
      cd lxml-layer && zip -r lxml-layer.zip .
      
  3. 在AWS控制台上传这个lxml-layer.zip作为Lambda层,然后将该层关联到你的Python 3.11 Lambda函数

方法二:使用EC2实例构建

  1. 启动一台Amazon Linux 2023 EC2实例
  2. 执行和Cloud9相同的命令完成lxml的安装与打包
  3. 将打包好的zip文件下载到本地,再上传为Lambda层

验证步骤

关联层后,在Lambda函数中测试导入:

from lxml import etree

def lambda_handler(event, context):
    # 测试代码
    root = etree.Element("root")
    return {"status": "success", "message": "lxml imported successfully"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:05:13