【发布时间】:2021-05-23 23:36:58
【问题描述】:
我有一个在 EC2 上运行良好的烧瓶 restful API。它能够连接到 AWS SQL Server 并可以执行获取/更新。但是当我上传到 AWS lambda 时,我收到了这个错误(我正在使用 zappa 上传)。
libodbc.so.2:无法打开共享对象文件:没有这样的文件或目录:ImportErrorTraceback(最后一次调用):文件“/var/task/handler.py”,第 609 行,在 lambda_handler 中返回 LambdaHandler.lambda_handler (事件,上下文)文件“/var/task/handler.py”,第 240 行,在 lambda_handler handler = cls() 文件“/var/task/handler.py”,第 134 行,在 init self.app_module = importlib.import_module(self.settings.APP_MODULE) 文件“/var/lang/lib/python3.6/importlib/init.py”,第 126 行,在 import_module 返回 _bootstrap。 _gcd_import(name[level:], package, level) File "", line 994, in _gcd_import File "", line 971, in _find_and_load File "", line 955, in _find_and_load_unlocked File "", line 665, in _load_unlocked File " ",第 678 行,在 exec_module 文件中 "",第 219 行,在 _call_with_frames_removed 文件中 "/var/task/app.py",第 8 行,在
导入pyodbc ImportError:libodbc.so.2:无法打开共享对象文件:没有这样的文件或目录
我正在使用 Python 3.6,并在我的虚拟环境中安装了 pyodbc,并且它在 EC2 中工作正常
我的连接字符串是这样的:
app = Flask(__name__)
details = {
'server' : '*********ap-south-1.rds.amazonaws.com',
'database' : '*******',
'username' : '*****',
'password' : '*****'
}
params='DRIVER={{ODBC Driver 13 for SQL Server}};SERVER={server};PORT=1443; DATABASE={database};UID={username};PWD={password}'.format(**details)
params = urllib.parse.quote_plus(params)
app.config['SQLALCHEMY_DATABASE_URI'] = "mssql+pyodbc:///?odbc_connect=%s" % params
#######################
db = SQLAlchemy(app)
我需要放置任何依赖项,例如 ODBC 驱动程序文件吗?请帮忙
【问题讨论】:
标签: python sql-server amazon-web-services aws-lambda pyodbc