我目前正在尝试运行此 AWS Lambda 入门教程:https://docs.aws.amazon.com/lambda/latest/dg/with-s3-example-deployment-pkg.html#with-s3-example-deployment-pkg-python
但是,我总是收到一个错误:
{
"errorMessage": "Unable to import module 'CreateThumbnail': cannot import name '_imaging' from 'PIL' (/var/task/PIL/__init__.py)",
"errorType": "Runtime.ImportModuleError"
}
日志输出
START RequestId: fefba1d1-443c-4617-a5ad-c3aac19e5591 Version: $LATEST
[ERROR] Runtime.ImportModuleError: Unable to import module 'CreateThumbnail': cannot import name '_imaging' from 'PIL' (/var/task/PIL/__init__.py)
END RequestId: fefba1d1-443c-4617-a5ad-c3aac19e5591
REPORT RequestId: fefba1d1-443c-4617-a5ad-c3aac19e5591 Duration: 1.52 ms Billed Duration: 100 ms Memory Size: 1024 MB Max Memory Used: 71 MB
我从 lambci/docker-lambda
图像构建了我的 .zip。但这并没有解决我的问题。
这是我的 .zip 中的内容。您有什么想法,为什么我仍然会收到此错误?
最佳答案
使用 python 3.6 而不是 3.7 只会给我一个不同的错误。由于其构建方式,AWS lambda 似乎缺少一些组件。
对我有用的 5 分钟解决方案:
转到 https://github.com/keithrozario/Klayers/tree/master/deployments/python3.8/arns (注意这是 python 3.8)
选择您的 lambda 运行到的区域的文件
获取最新 Pillow 版本的 ARN
在 AWS 控制台中的 Lambda 上,单击“层 (0)”
添加一个新图层:
保存所有,它应该可以正常工作!但是,您必须确保重新部署 lambda 以某种方式保留该层。
这篇拯救生命的博客文章的完整学分 https://medium.com/@derekurizar/aws-lambda-python-pil-cannot-import-name-imaging-11b2377d31c4
关于python - AWS lambda : cannot import name '_imaging' from 'PIL' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57197283/