我已经用这个命令在我的包文件夹中安装了
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')
我的所有其他模块都工作正常
添加这个库
pip install aws-psycopg2
我在 Mac 上为图层创建虚拟环境时遇到了同样的问题。为了解决这个问题,我使用了下面的命令。
pip 安装 --platform=manylinux1_x86_64 --only-binary=:all: psycopg2-binary --target “你的 lambda 层路径”
在我的例子中是:
lambda/layer/python/lib/python3.8/site-packages
如果一些所需的库已经存在,您也可以使用 --upgrade。
就我而言,我必须将 psycopg2-binary 添加到 requirements.txt
> pip3 install aws-psycopg2 -t .
Collecting aws-psycopg2
Using cached aws_psycopg2-1.3.8-py3-none-any.whl (73.8 MB)
Installing collected packages: aws-psycopg2
Successfully installed aws-psycopg2-1.3.8