代码在虚拟环境中工作得很好,我正在正确地部署所有依赖项的代码,但是当我的代码试图使用SQLAlchemy执行SQL原始查询时,我得到这个
{
"stackTrace": [
[
"/var/task/aws_handler.py",
13,
"twilio_handler",
"sms_bot.handle_communication(message_body, recipient)"
],
[
"/var/task/sms_bot.py",
86,
"handle_communication",
"is_authenticated, user_id = self.authenticate_user(recipient)"
],
[
"/var/task/sms_bot.py",
38,
"authenticate_user",
"result = execute_query(query)"
],
[
"/var/task/db_handler.py",
28,
"execute_query",
"connection = get_db_connection()"
],
[
"/var/task/db_handler.py",
19,
"get_db_connection",
"return get_sqlalchemy_engine().connect()"
],
[
"/var/task/db_handler.py",
11,
"get_sqlalchemy_engine",
"return create_engine(SQLALCHEMY_DATABASE_URI)"
],
[
"/var/task/sqlalchemy/engine/__init__.py",
386,
"create_engine",
"return strategy.create(*args, **kwargs)"
],
[
"/var/task/sqlalchemy/engine/strategies.py",
75,
"create",
"dbapi = dialect_cls.dbapi(**dbapi_args)"
],
[
"/var/task/sqlalchemy/dialects/mysql/mysqldb.py",
92,
"dbapi",
"return __import__('MySQLdb')"
],
[
"/var/task/MySQLdb/__init__.py",
19,
"<module>",
"import _mysql"
]
],
"errorType": "ImportError",
"errorMessage":
"libmysqlclient.so.20: cannot open shared object file: No such
file or directory"}
注意:SQL_URI是正确的,并且在本地工作
我找到了解决方案,安装了
在我的电脑上复制libmysqlclient-dev
从libmysqlclient.so.20
/usr/lib/x86_64-linux-gnu/
到我的aws部署包,将权限更改为777,压缩所有文件并上传到aws。它工作。