在 AWS Lambda 上安装较新版本的 sqlite3

Vin*_*t J 6 python sqlite aws-lambda

我想在 AWS Lambda 上运行的 python3.8 代码上使用 sqlite3 上的窗口函数。它们自 版本起可用3.25

不幸的是,在 AWS Lambda Python3.8 上,sqlite3 库已过时:

>>> sqlite3.sqlite_version
'3.7.17'
Run Code Online (Sandbox Code Playgroud)

在本地,在我的 Python3.8 自制安装上:(工作)

>>> import sqlite3
>>> sqlite3.sqlite_version
'3.31.1'
Run Code Online (Sandbox Code Playgroud)

如何在 AWS Lambda Python 3.8 上获得 sqlite3 版本 > 3.25 ?

Vin*_*t J 5

我找到了一种方法:我使用外部包pysqlite3,二进制版本。

在我的要求.txt

pysqlite3-binary==0.4.4
Run Code Online (Sandbox Code Playgroud)

在代码中

pysqlite3-binary==0.4.4
Run Code Online (Sandbox Code Playgroud)

  • 它在 AWS Lambda 中运行良好。我可以确认 AWS Lambda 上的 Python 3.9 发行版中当前的 SQLite3 版本仍然是“3.7.17”,因此 Windows 函数失败,并出现类似错误:“OperationalError:near '(':语法错误”。我不明白的是为什么当前的 SQLITE3 版本(可用)是 3.37.0,AWS Lambda 中使用的版本是 3.7.17 (2认同)