如何在AWS Lambda上为Python 3.8安装Pillow?

4

我已经安装了必要的Python库,并将其打包并上传到 AWS Lambda 的层中。在这些库中,我还有PIL和Pillow-8.2.0。然而,当我尝试使用以下代码在 AWS Lambda 中获取图像时出现问题。

import openpyxl
from openpyxl.writer.excel import save_virtual_workbook
from openpyxl.drawing.image import Image
import PIL
import io
import urllib3

wb = openpyxl.Workbook()
ws = wb.active
r = 1
http = urllib3.PoolManager()
r = http.request('GET', 'http://myridia.com/assets/images/logo.png')
image_file = io.BytesIO(r.data)
img = Image(image_file)
ws.add_image(img, 'A2')
wb.save("hello.xlsx")

当我在本地运行上面的代码时,它可以正常工作。我还尝试使用 arn:aws:lambda:ap-south-1:770693421928:layer:Klayers-python38-Pillow:10,但是它显示相同的错误。我的运行时是Python 3.6或3.8。我不知道该怎么做才能使它正常工作。请问有人可以帮帮我吗?

enter image description here


1
首先,我从本地文件中卸载了PIL和Pillow包,并制作了一个zip文件,然后上传到AWS lambda层。如预期的那样,它显示了PILLOW安装的上述错误。然后,我使用https://github.com/keithrozario/Klayers/blob/master/deployments/python3.8/arns/ap-south-1.csv中的arn名称添加了一个层。然后它就像预期的那样工作了。 - newbie dev
1个回答

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接