Psycopg3 - 没有可用的 pq 包装器

问题描述 投票:0回答:1

当我尝试在 AWS Lambda 上运行 psycopg3 时遇到此错误。

[ERROR] Runtime.ImportModuleError: Unable to import module 'function': no pq wrapper available.
Attempts made:
- couldn't import psycopg 'c' implementation: No module named 'psycopg_c'
- couldn't import psycopg 'binary' implementation: No module named 'psycopg_binary'
- couldn't import psycopg 'python' implementation: libpq library not found

基于我的 setup.py

,我将其作为我的 
.venv

中的依赖项引用
    install_requires=[
        'boto3',
        'pydantic',
        'python-dotenv',
        'psycopg',
        'twine',
        'wheel',
        'xlsxwriter'
    ],
    extras_require={
        'binary': ['psycopg-binary'],
    },

我已经复制了安装过程作为官方网站

python postgresql aws-lambda psycopg2 psycopg3
1个回答
0
投票

根据我的理解,你也需要一个二进制文件。

一些外部库(例如 GPG、psycopg3)要求使用 Amazon Linux 2 操作系统将它们静态编译为二进制文件,以便在 amazon lambda 上运行。 您可以使用 docker 镜像构建它,然后将其压缩并推送为 lambda 层以在 lambda 中使用。 这个过程并不简单。

相反,我建议看一下 pg8000 驱动程序。 https://github.com/tlocke/pg8000

使用参考:https://stackoverflow.com/a/72571215/5235168

© www.soinside.com 2019 - 2024. All rights reserved.