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

在AWS Lambda中使用Pillow层遇'_imaging'导入错误求助

问题描述

在AWS Lambda中添加Pillow包作为层后,执行函数时触发错误:

cannot import name '_imaging' from 'PIL' (/opt/python/PIL/__init__.py)

操作步骤:

  • 执行pip install pillow -t .,将PIL和pillow-10.2.0.dist-info文件夹放入python文件夹并打包为zip,上传至Lambda作为层,运行时选择Python 3.12。
  • 在Lambda函数中添加该层,并将函数运行时设置为Python 3.12。
  • 代码中调用from PIL import Image时触发错误。
解决方案

出现这个问题的核心原因是本地系统(Windows/macOS)安装的Pillow和Lambda的Amazon Linux 2023运行时环境不兼容,_imaging是Pillow的底层C扩展模块,本地编译的版本无法在Lambda的Linux环境中运行。

方法1:在Lambda兼容环境中构建Pillow包

使用Amazon Linux 2023容器(匹配Python 3.12的Lambda运行时)来编译安装Pillow:

  1. 拉取Lambda官方镜像:
    docker pull public.ecr.aws/lambda/python:3.12
    
  2. 启动挂载本地目录的容器:
    docker run -v "$(pwd)":/var/task public.ecr.aws/lambda/python:3.12 bash
    
  3. 在容器内安装Pillow到指定目录:
    pip install pillow -t /var/task/python
    
  4. 退出容器后,将本地生成的python文件夹打包为zip,重新上传作为Lambda层。

方法2:检查层的目录结构

确保zip包的内部结构符合Lambda层要求:

python/
├── PIL/
└── pillow-10.2.0.dist-info/

Lambda会自动将/opt/python添加到Python的sys.path中,错误的目录结构会导致模块无法被正确识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 21:04:59