我已按照文档中的所有步骤进行操作: https://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html
创建目录。
将所有Python源文件(.py文件)保存在此目录的根目录下。
在目录的根级别使用pip安装任何库。
压缩project-dir目录的内容)
但是将zip文件上传到 lambda 函数后,在测试脚本时出现了错误消息
我的代码:
import psycopg2
#my code...
错误:
Unable to import module 'myfilemane': No module named 'psycopg2._psycopg'
我不知道...的后缀'_psycopg'
在哪里
对此有任何帮助吗?
答案 0 :(得分:0)
我认为这是由于psycopg2
需要使用用于Linux的静态链接库来编译而造成的。有关此问题的更多详细信息,请参考Using psycopg2 with Lambda to Update Redshift (Python)。关于在OSX上编译psycopg2
的问题的另一个[reference] [1]。
有一些解决方案,但是基本上可以归结为在Linux机器上安装该库并将其用作上传包中的Psycopg2库。
答案 1 :(得分:0)
您正在将本机库与lambda一起使用。我们遇到了类似的问题,这就是我们解决问题的方法。
使用运行了实际lambda的AWS支持的AMI旋转计算机。
https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html
在撰写本文时,
AMI名称:amzn-ami-hvm-2017.03.1.20170812-x86_64-gp2
有关安装本机模块python lambda的完整文档。
https://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html
安装Lambda所需的必需模块,
pip安装模块名称-t / path / to / project-dir
并准备您的软件包以在lambda ami环境下与本机模块一起上传。
希望这会有所帮助。