AWS Lambda即使在创建层后也没有名为“matplotlib”的模块

cnwbcb6i  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(125)

我正在尝试添加一个AWS Lambda层,以便能够在AWS Lambda中使用matplotlib。为此,我从Python Package Index下载了以下文件:
matplotlib-3.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
我确保这是正确的Python版本和我机器的正确操作系统。
接下来,我将这些文件解压缩到我的机器上一个名为“python”的文件夹中,然后创建了一个同名的zip文件夹(python)。我将这个zip文件夹上传到我的AWS Lambda Layer for matplotlib。
在成功创建了一个lambda层之后,我将这个层添加到我的lambda函数中。
尽管如此,当我试图执行一个导入了matplotlib的函数时,仍然会出现以下错误:

{
  "errorMessage": "Unable to import module 'lambda_function': No module named 'matplotlib'",
  "errorType": "Runtime.ImportModuleError",

我尝试重新下载python包并多次重新创建lambda层,但每次都遇到相同的问题。任何帮助将不胜感激。

ppcbkaq5

ppcbkaq51#

下面是我为matplotlib创建的一个层。
在我的本地机器上,我执行了以下命令:

mkdir python
cd python
pip install \
--platform manylinux2014_x86_64 \
--target=./ \
--implementation cp \
--python-version 3.8 \
--only-binary=:all: --upgrade \
matplotlib
  • 我使用的是Python 3.8,请更改您需要的版本。*

然后我压缩了python文件夹,并将python.zip文件上传到s3 bucket,并继续创建层。
我知道仅仅提取一个wheel的文件并不会包含所有必要的文件/依赖项,使用上面的命令pip会下载除了主包(matplotlib)之外的所有依赖项。

相关问题