首页 > 编程语言 >AWS S3 Lambda Python脚本函数执行时报错AttributeError: module ‘PIL‘ has no attribute ‘,Image‘cannot import nam

AWS S3 Lambda Python脚本函数执行时报错AttributeError: module ‘PIL‘ has no attribute ‘,Image‘cannot import nam

时间:2024-04-24 22:25:06浏览次数:21  
标签:layers PIL img no S3 Image import Lambda

背景

代码示例如下

import PIL
def add_image(self, tag, img, step):
    summary = Summary()
    bio = BytesIO()
 
    if type(img) == str:
        img = PIL.Image.open(img)
    elif type(img) == PIL.Image.Image:
        pass
    else:
        img = scipy.misc.toimage(img)

python脚本在本地可以执行,但是放到S3的Lambda中却总是报这个错

AttributeError: module ‘PIL‘ has no attribute ‘,Image‘cannot import name '_imaging' from 'PIL'

原因

原因是Lambda的Layer层,添加的脚本执行环境eve,打包压缩的zip包有问题,没有按照标准的解压流程去执行。

我一开始是直接把PIL和Pillow包直接压缩打成了一个zip包,这种就少了一些基础的执行环境依赖,标准的打包流程如下。

 

参考链接

https://github.com/keithrozario/Klayers/issues/154

https://docs.aws.amazon.com/lambda/latest/dg/packaging-layers.html#packaging-layers-paths

https://docs.aws.amazon.com/lambda/latest/dg/python-layers.html#python-layer-packaging

标签:layers,PIL,img,no,S3,Image,import,Lambda
From: https://www.cnblogs.com/lingyejun/p/18156503

相关文章

  • P3953 [NOIP2017 提高组] 逛公园
    P3953[NOIP2017提高组]逛公园求有向图中\(1\)到\(n\)的路径中长度小于等于\(dis(1,n)+k\)的方案数。\(dis(1,n)\)表示最短路。\(k\le50\)。部分分\(k=0\),直接最短路计数即可。我们发现有向图中存在后效性,不好动态规划,但我们仔细思考后,在不存在\(0\)边的情况下,设......
  • P7114 [NOIP2020] 字符串匹配
    P7114[NOIP2020]字符串匹配看到循环部分\(AB\),自然想要去枚举它,并且用哈希。开始想到的是倍增+hash求出最长循环的右端点,复杂度是\(O(n\logn)\),结果不好写,没写出来。我们先思考找到右端点怎么计算贡献。最朴素的,我们再枚举前缀\(ABAB\cdotsAB\),容易预处理出后缀出现奇数......
  • P8866 [NOIP2022] 喵了个喵
    P8866[NOIP2022]喵了个喵构造模拟题,思路很简洁,但是代码不好写。首先看到数据范围,发现\(k\)的数据范围很特殊,种类少一种就是部分分,所以\(k\)一定是关键的,先思考\(k=2n-2\)的情况。\(k=2n-2\)观察两种操作,对于即将进入的牌\(x\),若某个栈顶或栈底有相同的\(x\),我们都可......
  • P7961 [NOIP2021] 数列
    P7961[NOIP2021]数列这题想了一半,后面有点不敢想结果直接看题解了。思考后发现,对于\(a_i\lex\),也就是二进制中第\(x\)位前的部分,它们都可能会影响到二进制中第\(x\)位后的进位,而\(a_i>x\)的部分是不会影响到\(x\)位前的进位的。所以为了满足无后效性,我们从低位向高......
  • Node系列---【node版本管理工具-nvm的安装与使用】
    node版本管理工具-nvm的安装与使用1.下载地址官网地址:https://github.com/coreybutler/nvm-windows/releases2.安装默认安装,一路下一步即可。3.常用命令nvm-vnvmlsnvmlistavailablenvminstallnode版本号nvmusenode版本号切换node版本......
  • 使用create-react-app,配置proxy报错(options.allowedHosts[0] should be a non-empty
    ​#使用create-react-app,配置proxy报错(options.allowedHosts[0]shouldbeanon-emptystring)今天在启动项目的时候遇到一个神奇的问题,这个问题具体报错信息是:Invalidoptionsobject.DevServerhasbeeninitializedusinganoptionsobjectthatdoesnotmatchtheAP......
  • react报错export ‘Switch‘ (imported as ‘Switch‘) was not found in ‘react-rou
    报如下错,查react-router-dom版本。 因为:react-router-dom从V5升级到V6造成的(1)将Switch重命名为Routes(2)Route的新特性变更,component/render被element替代(3) 嵌套路由变得更简单 ......
  • 点击事件报错: Cannot set properties of null (setting 'onclick')
    1、正常书写代码如下:通过外部引用JS文件实现想要的效果时报错,以下是代码的展示。在头部引入js文件<scripttype="text/javascript"src="./win.js"></script>HTML代码文件如下:<divclass="cl"><divid="mask">“冲出迷雾走向光明,最强大的力量是同......
  • Redirect is not allowed for a preflight request 跨域问题的一个解决思路
    一、前置知识首先,我们应当明确一下这个报错究竟是什么问题当我们需要跨域(当两个页面的协议,主机和端口号有任意一个不相同时)请求资源,且为非简单方法(比如方法为HEAD、GET、POST之外)时,会向服务器发送预检请求。预检请求方法为OPTIONS,用来检测服务器所支持的请求方法。在预检......
  • 修改元素样式报错:Cannot set properties of undefined (setting 'visibility')
    1、正常书写代码如下:<divclass="cl"><divid="mask"><spanid="close">X</span></div></div><!--JS代码如下--><script>letclose=document.getElement......