【发布时间】:2020-11-18 03:19:05
【问题描述】:
我想使用 matplotlib 在 AWS Lambda 函数中创建图像文件。由于我的系统运行的 Linux 版本与 Lambda 使用的不同,因此我收到了从 matplotlib 网站下载轮子(.whl 文件)的指导。我下载了matplotlib-3.3.3-cp36-cp36m-manylinux1_x86_64.whl https://files.pythonhosted.org/packages/d2/43/2bd63467490036697e7be71444fafc7b236923d614d4521979a200c6b559/matplotlib-3.3.3-cp36-cp36m-manylinux1_x86_64.whl
到我正在创建我的部署包的文件夹。
首先,我有很多轮文件,不清楚这是否正确。其次,它不起作用。
然后我用命令打包了轮子
wheel unpack *.whl
这产生了一个包含 matplotlib 包的目录。
我的主要功能是
import matplotlib.pyplot
def lambda_handler(event, context):
return
我下达了命令
zip -r my-deployment-package.zip .
zip -g my-deployment-package.zip lambda_function.py
并将 zip 文件上传到 s3 存储桶。然后我使用“aws lambda update-function-code...”命令来更新 lambda 函数。部署和测试时,出现错误:“无法导入模块 'lambda_function': No module named 'matplotlib'”
考虑到 matplotlib 模块不存在(也许我需要对 whl 文件做一些事情或者把它放在不同的地方),我激活了我的虚拟环境并启动了 python 解释器。尝试导入 matplotlib,我得到“找不到模块”。尝试在matplotlib目录下使用pip install,报错没有setup.py:
$ pip install --no-index --find-links=. matplotlib-3.3.3/
ERROR: Directory 'matplotlib-3.3.3/' is not installable. Neither 'setup.py' nor 'pyproject.toml' found.
如何让模块被识别?
【问题讨论】:
标签: matplotlib aws-lambda python-wheel