尝试在 AWS Lambda 中运行 psycopg2 时收到以下错误:
/var/task/functions/../vendored/psycopg2/_psycopg.so: ELF file's phentsize not the expected size: ImportError
Traceback (most recent call last):
File "/var/task/functions/refresh_mv.py", line 64, in execute
session = SessionFactoryGraphQL.get_session(app=item['app'])
File "/var/task/lib/session_factory.py", line 22, in get_session
engine = create_engine(conn_string, poolclass=NullPool)
File "/var/task/functions/../vendored/sqlalchemy/engine/__init__.py", line 387, in create_engine
return strategy.create(*args, **kwargs)
File "/var/task/functions/../vendored/sqlalchemy/engine/strategies.py", line 80, in create
dbapi = dialect_cls.dbapi(**dbapi_args)
File "/var/task/functions/../vendored/sqlalchemy/dialects/postgresql/psycopg2.py", line 554, in dbapi
import psycopg2
File "/var/task/functions/../vendored/psycopg2/__init__.py", line 50, in <module>
from psycopg2._psycopg import ( # noqa
ImportError: /var/task/functions/../vendored/psycopg2/_psycopg.so: ELF file's phentsize not the expected size
奇怪的是:一切都工作正常,直到昨天(持续了5个多月),突然停止工作。没有任何库已更新。
我尝试从头开始构建,如 https://github.com/jkehler/awslambda-psycopg2 所示,但仍然有同样的错误。
有人可以帮我吗?
最佳答案
问题出在最新版本的无服务器框架中。我假设您正在使用无服务器来部署 lambda 函数。
serverless remove
npm install <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="186b7d6a6e7d6a747d6b6b5829362a28362a" rel="noreferrer noopener nofollow">[email protected]</a> -g
这应该有效。
关于postgresql - 在 AWS Lambda 函数内运行 psycopg2 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45998320/