无法导入模块'lambda_function':没有名为'psycopg2._psycopg'的模块 AWS Lambda函数。

6

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

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

现在psycopg2模块已经在我的包中了,并且我已经创建并将其压缩上传到AWS Lambda。

在我的本地环境中,它可以正常工作,但在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')

我的所有其它模块都运行正常。

5个回答

2

添加这个库

pip install aws-psycopg2

3
不再工作 - Remis Haroon - رامز

1

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

pip install --platform=manylinux1_x86_64 --only-binary=:all: psycopg2-binary --target "你的Lambda层路径"

在我的情况下,它是:

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

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


0
在我的情况下,我不得不将 psycopg2-binary 添加到 requirements.txt 中。

没有为我工作 - Andan H M

0
我需要将整个安装在Docker上的库进行压缩, 你可以从https://hub.docker.com/r/mlupin/docker-lambda/tags获取镜像。
我使用的是Python3.11版本。
请确保已经安装了Docker。
步骤1. 创建库文件夹。
cd ~ && mkdir python-lib && cd python-lib
echo 'psycopg2-binary' > requirements.txt

第二步。使用Docker镜像创建库。
docker run -v "$PWD":/var/task "mlupin/docker-lambda:python3.11-build" /bin/sh -c "pip install -r requirements.txt -t python/lib/python3.11/site-packages/; exit"
zip -r psycopg2.zip python

然后你需要将该zip文件上传到AWS Lambda的层部分。

-1
> 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接