AWS Lambda 使用 PIL/Pillow 和 Python 2.7

AWS Lambda using PIL/Pillow with Python 2.7

我在 AWS Lambda 上使用 Python 2.7(出于各种原因),我需要使用 PIL/Pillow 库进行图像处理。我正在使用 ZIP 文件将代码放入我的 Lambda 函数中。

此 zip 中的项目之一是一个文件夹,其中包含 PIL 库。我已经尝试了几种不同的方法来获取库,包括使用 pip install pillow -t .,以及使用来自 here and here 的预编译 PIL 库。

使用第一个预编译源,出现错误:

no module named PIL

如果我将子目录从 PIL 重命名为 pillow,我会得到同样的错误,但有 pillow。

使用第二个预编译源和pip方式,报错:

Could not import the Python Imaging Library (PIL) required to load image files

这是我的导入语句和发生错误的行:

from pillow import *
...
I = imread(filename, flatten=True)

这是我的文件结构的截图(使用第一个预编译源):

Archive.zip 是我上传到 Lambda 的内容。每次更改代码或库时,我都会通过选择每个要压缩的文件、右键单击并选择 "Compress" 来重新创建它。我正在使用 macOS High Sierra。

顺便说一句,我看过 问题和答案,但我没有收到相同的错误消息,而且我无法让建议的命令正常工作。

我想知道 PIL 与 Pillow 或 Python 3.6 与 Python 2.7 是否存在问题。

非常感谢任何帮助!

我使用 Docker 解决方案解决了这个问题,如 this post 中所述。