Python 2.7 AWS Lambda(python2.7):添加matplotlib作为层

Python 2.7 AWS Lambda(python2.7):添加matplotlib作为层,python-2.7,matplotlib,aws-lambda,amazon-linux,Python 2.7,Matplotlib,Aws Lambda,Amazon Linux,我在尝试将matplotlib添加到Python 2.7 AWS Lambda函数中时遇到问题 在上,我尝试安装必要的库并创建一个层,如所述 我尝试过的事情: 首先,我pip installed matplotlib到一个虚拟环境中,并复制lib和lib64下站点包的内容。执行lambda函数时,我得到一个名为pkg_resources的无模块异常。我还尝试使用--target选项安装,将所有依赖项安装到同一文件夹中。结果是一样的 我读到这可能是由于过时的setuptools包。当我执行更新pi

我在尝试将
matplotlib
添加到Python 2.7 AWS Lambda函数中时遇到问题

在上,我尝试安装必要的库并创建一个层,如所述

我尝试过的事情:

首先,我
pip install
ed matplotlib到一个虚拟环境中,并复制lib和lib64下站点包的内容。执行lambda函数时,我得到一个名为pkg_resources的
无模块
异常。我还尝试使用
--target
选项安装,将所有依赖项安装到同一文件夹中。结果是一样的

我读到这可能是由于过时的setuptools包。当我执行更新
pip安装--升级setuptools
并尝试安装matplotlib时,我开始出现以下异常:

pkg_resources.DistributionNotFound: The 'pip==9.0.3' distribution was not found and is required by the application 
最后,我考虑使用安装matplotlib

sudo yum install python-matplotlib
然后按照说明收集所需的包裹。但这并没有使matplotlib在python shell中变得可导入,所以我猜它不会作为Lambda层工作

谢谢你的帮助


附言:在AWS re:invent上,确实是这样,但没有关于会话的详细信息://

我在其他模块(如crypto和我自己的自定义模块)上遇到了类似的问题。我发现问题其实是缺少好的文档

在我的例子中,我使用--target选项从目标目录压缩所有依赖项,因此所有依赖项目录都位于zip文件的顶层。这对于直接的Lambda部署很好,但是当您想要使用一个层时,该层被部署到Lambda容器的/opt文件夹中,因此您需要使用名为“python”的顶级目录创建zip文件,以便您的依赖项可以位于/opt/python/

mkdir python && cd python && pip install pyopenssl crypto --target . && cd .. && zip -r9 ./lambda_layer.zip python/
它确实出现在文档中,但它很简短,很容易被忽略。这一页帮助我:

祝你好运