【发布时间】:2017-06-30 22:20:10
【问题描述】:
我使用我的 python 文件和包括 sqlalchemy 和 psycopg2 在内的依赖项为 AWS Lambda 创建了一个部署包。该代码在本地访问数据库时完美运行。但是当我导入这个 zip 文件时,我收到以下错误。
No module named 'psycopg2._psycopg': ModuleNotFoundError
错误的堆栈跟踪是,
{
"errorMessage": "No module named 'psycopg2._psycopg'",
"errorType": "ModuleNotFoundError",
"stackTrace": [
[
"/var/task/DBAccessLamdaHandler.py",
50,
"lambda_handler",
"engine = create_engine(rds_host)"
],
[
"/var/task/sqlalchemy/engine/__init__.py",
387,
"create_engine",
"return strategy.create(*args, **kwargs)"
],
[
"/var/task/sqlalchemy/engine/strategies.py",
80,
"create",
"dbapi = dialect_cls.dbapi(**dbapi_args)"
],
[
"/var/task/sqlalchemy/dialects/postgresql/psycopg2.py",
554,
"dbapi",
"import psycopg2"
],
[
"/var/task/psycopg2/__init__.py",
50,
"<module>",
"from psycopg2._psycopg import ( # noqa"
]
]
}
任何帮助都是可观的
【问题讨论】:
-
您不需要从头开始构建它。该存储库在 psycopg2 文件夹中包含一个预构建的包,您可以简单地将其包含在您要上传到 Lambda 的 ZIP 文件中(据称,我实际上并没有使用它)。
标签: aws-lambda psycopg2 amazon-rds