【问题标题】:AWS Lambda Importing psycopg2 - Unable to import module 'app': No module named 'psycopg2._psycopgAWS Lambda 导入 psycopg2 - 无法导入模块 \'app\':没有名为 \'psycopg2._psycopg 的模块
【发布时间】:2023-01-05 00:36:31
【问题描述】:

我正在尝试在 Windows 10 上的 Pycharm IDE 中将 psycopg2 库与 AWS lambda 一起使用。

我已经尝试了这个repository 中列出的所有 Python 版本,但我仍然总是收到以下错误:

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

我试过 this 解决方案,我们安装 aws-psycopg2 但它没有用。根据this 解决方案,我已确保我的本地 Python 运行时和 Lambda 运行时相同,但我仍然收到错误。

根据this answer,我已经确保我的 Python 版本是 64 位

【问题讨论】:

    标签: postgresql aws-lambda


    【解决方案1】:

    嘿,万一它仍然不起作用,我遇到了同样的问题,这就是我所做的:

    • 运行了这个命令:
    • pip install --platform=manylinux1_x86_64 --only-binary=:all: psycopg2-binary --target psycopg-binary/python/lib/python3.8/site-packages

    • 使用上述包 (pyscopg-binary) 创建了一个 lambda 层并将其添加到 lambda 函数中
    • 确保运行时正确(起初我有 lamda 层运行时 3.9 和函数 3.9,然后我切换到 3.8 并且它工作)
    • 除了运行时,我不确定是哪个包导致它工作(因为我在一个步骤中做了很多事情:除了更改运行时外,还向 requirements.txt 添加了 aws-psycopg2,因此我不确定是否aws-psycopg2 与它的工作有任何关系:),但我认为它与它无关,所以没有它它应该也能工作)。

    希望这可以帮助。

    【讨论】: