Python 3.x AWS lambda没有模块名为markupsafe错误与jinja2
我创建了一个lambda函数来发送特定模板中的电子邮件,对于这个模板,我使用的是与lambda一起打包的jinja2。我的lambda导入语句如下所示:Python 3.x AWS lambda没有模块名为markupsafe错误与jinja2,python-3.x,amazon-web-services,aws-lambda,jinja2,python-3.6,Python 3.x,Amazon Web Services,Aws Lambda,Jinja2,Python 3.6,我创建了一个lambda函数来发送特定模板中的电子邮件,对于这个模板,我使用的是与lambda一起打包的jinja2。我的lambda导入语句如下所示: import datetime import boto3 import threading import time from botocore.exceptions import ClientError from boto3.dynamodb.conditions import Key, Attr from libs.jinja2 impor
import datetime
import boto3
import threading
import time
from botocore.exceptions import ClientError
from boto3.dynamodb.conditions import Key, Attr
from libs.jinja2 import Environment, FileSystemLoader
我的libs文件夹由jinja2组成,当它失败时,没有名为Markupsafe的模块
i pip将Markupsafe作为目标安装到libs文件夹中,并将应用程序(源代码)和libs文件夹压缩在一起。但它仍然无法工作,并因以下错误而失败:
{
"errorMessage": "Unable to import module 'app.main': No module named 'markupsafe'",
"errorType": "Runtime.ImportModuleError"
}
我们也有类似的问题,我们的aws lambda使用运行时python3.7 因此,jinja2取决于markupsafe[1]
Collecting Jinja2>=2.10.1
Downloading Jinja2-2.11.1-py2.py3-none-any.whl (126 kB)
Collecting Flask==1.0.2
Downloading Flask-1.0.2-py2.py3-none-any.whl (91 kB)
Collecting Werkzeug==0.14.1
Downloading Werkzeug-0.14.1-py2.py3-none-any.whl (322 kB)
....
Collecting MarkupSafe>=0.23
Downloading MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl (27 kB)
上面的依赖树工作
[1] 感谢您的回复!在将包添加到zip中之后,我添加了PYTHONPATH环境变量以允许lamdba使用libs
PYTHONPATH/var/runtime:/var/task/libs