【问题标题】:No module named 'psycopg2._psycopg'没有名为“psycopg2._psycopg”的模块
【发布时间】:2019-05-06 18:52:36
【问题描述】:

我正在使用 psycopg2 库创建一个 lambda 函数来连接到 RDS Postgresql 实例。 当我在本地桌面上尝试时,它工作正常,但是当我将代码上传到 AWS lambda 并对其进行测试时,它会抛出错误:

无法导入模块“lambda_function”:没有名为“psycopg2._psycopg”的模块

我尝试将 pip install psycopg2 安装到我的电脑上的本地文件夹中,我保存了我的 lambda_function 的本地副本,然后从中创建了一个 zip 并上传了它。但它仍然无法正常工作。 有遇到过类似问题的朋友,请指教。

我在本地安装了 python 3.7(32 位)。不确定 AWS 版本的 python 是否为 64 位。

【问题讨论】:

    标签: function lambda psycopg2


    【解决方案1】:

    我发现了为什么它不起作用的问题。我的本地 python 实例是 3.7,所以显然它也将运行使用 3.6 开发的代码。我从jkehler/awslambda-psycopg2 获得的 psycopg2 构建库是为 python 3.6 构建的,当我将代码上传到 AWS lambda 时,我选择 Python 3.7 作为运行时环境。当我将运行时更改为 3.6 时,代码可以正常工作。所以关闭问题

    【讨论】: