AWS Lambda + Python - 没有名为pkg_resources的模块

时间:2017-10-01 12:49:49

标签: python amazon-web-services lambda aws-lambda

我正在尝试为AWS Lambda创建一个python部署包。我已按照创建Deployment Package (Python)

中指定的文档进行操作

在测试创建Lambda函数时,我收到以下错误:

No module named pkg_resources

在调试时,确定pint包需要此pkg_resources。在Python发行版安装期间将创建AFAIK,pkg_resources

我假设因为Python已经在Lambda服务器上可用,它也应该有pkg_resources

我在这里缺少什么?有人可以帮忙吗?

在downvoting之前:如果这是一个错误的论坛,请对这个问题发表评论,我将转向正确的论坛。

2 个答案:

答案 0 :(得分:3)

确保所有软件包都可用的好方法是在AWS AMI中安装所有依赖项。它提供与bootstrap中的lambda相同的环境。这样您就可以找到系统上安装的AWS AMI python和python中缺少的软件包。您可能希望查看像serverless这样的框架,它们具有可以为您构建软件包的serverless-python-requirements等插件。我通常创建一个venv并检查一切是否正常。这是link,它向您展示了如何做到这一点。

答案 1 :(得分:1)

我发现这个有用的link列出了lambda执行环境中安装的所有python模块。虽然此链接列出了Python 2.7,但您也可以参考Python 3.6。如果此列表中不存在您需要的模块,则可以将其与ZIP文件打包在一起。

AWS文档还提到了list of available libraries lambda执行环境,但它只是提到了Boto3包,并没有明确列出模块/依赖模块。