我已经尝试在python / lib / python3.7 / site-packages / {matplotlib这里}中对zip进行压缩和结构化,但是它说无法导入matplotlib / init _ 中的ft2font .py
有趣的是,我的软件包中没有其他使用该名称的文件。我尝试在不同的操作系统上安装pip和pip3,但还是没有运气
答案 0 :(得分:0)
我在these steps之后使用docker为AWS lambda创建了matplotlib层:
sudo docker pull amazonlinux
sudo docker run -it amazonlinux:latest /bin/bash
# inside container
yum -y install python37 zip
python3 -m venv python
source python/bin/activate
pip3 install matplotlib
deactivate
rm -rf python/{bin,include,lib64,pyvenv.cfg} python/lib/python3.7/site-packages/{__pycache__,easy_install.py,numpy*,pip*,pkg_resources,setuptools*}
zip -r aws_lambda_python37_layer_matplotlib.zip python/
# in other terminal, copy file from container to host
CONTAINER_ID=$(sudo docker ps|grep amazonlinux|cut -d " " -f1)
sudo docker cp ${CONTAINER_ID}:/aws_lambda_python37_layer_matplotlib.zip .
# exit container
exit
请注意,由于单个lambda层的大小限制,此脚本会从该层中删除numpy。因此,您还需要在lambda函数中启用来自AWS的官方numpy / scipy层。
您也可以在小型EC2实例上在没有docker的情况下执行此操作。您可以在这里找到生成的压缩文件:https://github.com/ttor/aws_lambda_python37_layer_matplotlib