我正在使用 psycopg2 库创建一个 lambda 函数来连接到 RDS Postgresql 实例。 当我在本地桌面上尝试时,它工作正常,但是当我将代码上传到 AWS lambda 并测试它时,它会抛出错误:
无法导入模块“lambda_function”:没有名为“psycopg2._psycopg”的模块
我尝试将 psycopg2 pip install 到我电脑上的本地文件夹,我在其中保存了 lambda_function 的本地副本,然后从中创建了一个 zip 并上传。但它仍然不起作用。 有遇到类似问题的朋友请指教。
我已经在本地安装了 python 3.7(32 位)。不确定 AWS 版本的 python 是否是 64 位。
我发现了它为什么不起作用的问题。我的本地 python 实例是 3.7,因此显然它也将运行使用 3.6 开发的代码。我从 jkehler/awslambda-psycopg2 获得的 psycopg2 构建库是为 python 3.6 构建的,当我将代码上传到 AWS lambda 时,我选择 Python 3.7 作为运行时环境。当我将运行时更改为 3.6 时,代码可以正常运行,没有任何问题。所以关闭这个问题
使用
aws-psycopg2
,它应该可以解决你的问题。
这是一个针对 Python 定制编译的 psycopg2 C 库,它与 aws lambda 配合良好。