当我尝试在 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'],
},
我已经复制了安装过程作为官方网站。
根据我的理解,你也需要一个二进制文件。
一些外部库(例如 GPG、psycopg3)要求使用 Amazon Linux 2 操作系统将它们静态编译为二进制文件,以便在 amazon lambda 上运行。 您可以使用 docker 镜像构建它,然后将其压缩并推送为 lambda 层以在 lambda 中使用。 这个过程并不简单。
相反,我建议看一下 pg8000 驱动程序。 https://github.com/tlocke/pg8000