我正在使用一个名为SearchFacesbyimage
的lambda函数,并且参考了这篇文档:https://aws.amazon.com/blogs/machine-learning/build-your-own-face-recognition-service-using-amazon-rekognition/
用于比较的是以下内容:
from PIL import Image
我遇到了这个错误:无法导入模块'lambda_function':没有名为PIL的模块
我正在使用一个名为SearchFacesbyimage
的lambda函数,并且参考了这篇文档:https://aws.amazon.com/blogs/machine-learning/build-your-own-face-recognition-service-using-amazon-rekognition/
用于比较的是以下内容:
from PIL import Image
我遇到了这个错误:无法导入模块'lambda_function':没有名为PIL的模块
.
├── manifest.yml
├── src
│ ├── requirements.txt
│ ├── lambda_function.py
Pillow==6.0.0
functions:
reko:
requirements: ./src/requirements.txt.
include:
- ./src/lambda_function.py
pip install juniper
命令。执行以下命令行命令:juni build
。Juniper 将创建名为 ./dist/reko.zip
的文件,其中包含您的源代码以及您在 requirements.txt 文件中包含的任何依赖项。默认情况下,Juniper 使用 Docker 容器,并且构建命令将使用 Python 3.6。您可以覆盖此默认设置。./src/requirements.txt
上有一个拼写错误。行尾不应该有一个点。应该只是./src/requirements.txt
。 - josealvarez97假设你的文件名为CreateThumbnail.py
如果你的源代码在本地主机上,请将其复制到EC2上。
scp -i key.pem /path/to/my_code.py ec2-user@public-ip-address:~/CreateThumbnail.py
通过SSH连接到64位Amazon Linux实例。
ssh -i key.pem ec2-user@public-ip-address
使用以下步骤安装Python 3.6和virtualenv:
a) sudo yum install -y gcc zlib zlib-devel openssl openssl-devel
b) wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
c) tar -xzvf Python-3.6.1.tgz
d) cd Python-3.6.1 && ./configure && make
e) sudo make installfsudo /usr/local/bin/pip3 install virtualenv
选择通过pip3安装的虚拟环境
/usr/local/bin/virtualenv ~/shrink_venv
source ~/shrink_venv/bin/activate
在虚拟环境中安装库
pip install Pillow
pip install boto3
将lib和lib64 site-packages的内容添加到您的.zip文件中。请注意,以下步骤假定您使用了Python运行时版本3.6。如果您使用的是版本2.7,则需要相应更新。
cd $VIRTUAL_ENV/lib/python3.6/site-packages
zip -r9 ~/CreateThumbnail.zip
注意- 要包括所有隐藏文件,请使用以下选项:
zip -r9 ~/CreateThumbnail.zip
将你的python代码添加到.zip文件中
cd ~
zip -g CreateThumbnail.zip CreateThumbnail.py
custom:
pythonRequirements:
dockerizePip: true
strip: false
正如这里的大多数答案已经提到的那样,AWS Lambda执行环境仅包括Python内置包和boto3,但没有其他内容。
要包含外部包,您需要自己包含它们,可以通过构建它们并将其包含在函数上传中--或者将它们打包为层。还要记住,这些包本身需要为Amazon Linux构建。
如果您正在使用python3.7,则可以使用此公开可用的pillow层: https://github.com/keithrozario/Klayers