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

问题描述 投票:0回答:3

我正在尝试为 AWS Lambda 创建一个 python 部署包。我已遵循创建部署包 (Python)

中指定的文档

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

No module named pkg_resources

在调试时,发现

pint
包需要这个
pkg_resources
。 AFAIK,
pkg_resources
将在 Python 发行版安装期间创建。

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

pkg_resources

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

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

python amazon-web-services lambda aws-lambda
3个回答
3
投票

确保所有软件包可供您使用的一个好方法是安装

AWS AMI
中的所有依赖项。它在引导时提供与 lambda 相同的环境。这样您就可以找出系统上安装的
AWS AMI
python 和 python 中缺少哪些软件包。您可能想看看像 serverless 这样的框架,它有像 serverless-python-requirements 这样的插件,可以为您构建包。我通常创建一个
venv
并检查一切是否正常。这里是链接,它向您展示了如何做到这一点。


1
投票

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

AWS 文档还提到了 lambda 执行环境的 可用库列表,但它只提到了

Boto3
包,并没有明确列出随之而来的模块/依赖模块。


0
投票

经过一番研究,您需要将一个库添加到requirements.txt文件中: 设置工具

之后就没问题了!

© www.soinside.com 2019 - 2024. All rights reserved.