AWS Lambda python 错误:Runtime.ImportModuleError:无法导入模块“app”:无法从“pyparsing”导入名称“operatorPrecedence”
Posted
技术标签:
【中文标题】AWS Lambda python 错误:Runtime.ImportModuleError:无法导入模块“app”:无法从“pyparsing”导入名称“operatorPrecedence”【英文标题】:AWS Lambda python Error: Runtime.ImportModuleError: Unable to import module 'app': cannot import name 'operatorPrecedence' from 'pyparsing' 【发布时间】:2022-01-23 21:39:03 【问题描述】:我刚刚重新部署了我的 AWS Lambda,却意外遇到了一个问题:
[ERROR]
Runtime.ImportModuleError: Unable to import module 'app': cannot import name 'operatorPrecedence' from 'pyparsing'
(/opt/python/pyparsing/__init__.py)
(/var/task/pyparsing/__init__.py)
我该如何解决这个问题?
【问题讨论】:
您能否添加有关您正在部署的代码的更多详细信息——例如文件夹结构和您在 zip 中包含的依赖项? 【参考方案1】:我看到a release note这个功能在 pyparsing 的第 3 版中已停用:
operatorPrecedence infixNotation 的同义词 - 转换为调用 中缀符号
因此,您可能包含的 pyparsing
版本可能与您之前使用的不同 - 一个不包含 operatorPrecedence
功能的版本,因此请仔细检查您所包含的 pyparsing
版本。
This Knowledge Center article 概述了最常见的问题:
当您的 Lambda 环境无法正常运行时,您通常会收到此错误 在 Python 代码中找到指定的库。这是因为 Lambda 并非所有 Python 库都预打包。
要解决此错误,请创建部署包或 Lambda 层 包括您要在 Python 代码中使用的库 对于 Lambda。
如果您想直接在代码包中包含依赖项,这里还有几个不使用层的示例:
https://alexharv074.github.io/2018/08/18/creating-a-zip-file-for-an-aws-lambda-python-function.html https://dev.to/razcodes/how-to-create-a-lambda-using-python-with-dependencies-4846【讨论】:
感谢@shawn 清楚地解释了这个问题?【参考方案2】:基本上,我通过以下步骤解决此问题:
制作虚拟环境 手动添加所需的包/库 通过python3 -m pip freeze > requirements.txt
准备 requirements.txt
部署您的代码
注意:
完成上述步骤后,如果您仍然遇到同样的问题, 然后使用 pyparsing==2.4.7 代替 pyparsing==3.0.6 或更新版本【讨论】:
以上是关于AWS Lambda python 错误:Runtime.ImportModuleError:无法导入模块“app”:无法从“pyparsing”导入名称“operatorPrecedence”的主要内容,如果未能解决你的问题,请参考以下文章
返回空正文时来自python中AWS lambda的内部服务器错误
AWS Lambda python 错误:Runtime.ImportModuleError:无法导入模块“app”:无法从“pyparsing”导入名称“operatorPrecedence”
无法从 lambda 中的 python 连接到 aws redshift
适用于 postgreSQL 的 AWS Lambda 函数 NodeJs - 超时错误