我正在尝试为AWS Lambda创建一个python部署包。我已按照创建Deployment Package (Python)
中指定的文档进行操作在测试创建Lambda函数时,我收到以下错误:
No module named pkg_resources
在调试时,确定pint
包需要此pkg_resources
。在Python发行版安装期间将创建AFAIK,pkg_resources
。
我假设因为Python已经在Lambda服务器上可用,它也应该有pkg_resources
。
我在这里缺少什么?有人可以帮忙吗?
在downvoting之前:如果这是一个错误的论坛,请对这个问题发表评论,我将转向正确的论坛。
答案 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
包,并没有明确列出模块/依赖模块。