无法导入模块 'lambda_function':没有名为 'psycopg2._psycopg 的模块 aws lambda 函数

Unable to import module 'lambda_function': No module named 'psycopg2._psycopg aws lambda function

我已经使用此命令在我的包文件夹中安装了 psycopg2

pip install --target ./package psycopg2 # Or
pip install -t ./package psycopg2

现在 psycopg2 模块在我的包中,我已经创建了 zip 并将其上传到 AWS lambda 中。

在我的本地 sprint 中工作正常,但在 AWS lambda 上它不工作。

显示错误

{
  "errorMessage": "Unable to import module 'lambda_function': No module named 'psycopg2._psycopg'",
  "errorType": "Runtime.ImportModuleError",
  "stackTrace": []
}

我的 lambda 代码是

import psycopg2

def lambda_handler():
   print('hello')

我的所有其他模块都工作正常

我在 Mac 上为图层创建虚拟环境时遇到了同样的问题。为了解决这个问题,我使用了以下命令。

pip install --platform=manylinux1_x86_64 --only-binary=:all: psycopg2-binary --target "your lambda layer path"

在我的例子中是:

lambda/layer/python/lib/python3.8/site-packages

如果一些必需的库已经存在,您也可以使用 --upgrade。

添加这个库

pip install aws-psycopg2