pythonsqlite3库不能使用uri,即使sqlite3版本应该是ab

2024-09-27 00:18:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我的机器上安装了最新的sqlite3:

$ sqlite3 --version
3.26.0 2018-12-01 12:34:55 bf8c1b2b7a5960c282e543b9c293686dccff272512d08865f4600fb58238b4f9

而且,在python中,sqlite3模块使用以下版本的sqlite3:

^{pr2}$

但是,我无法使用uri打开数据库文件,即使sqlite从3.7版开始就有这个功能:

^{3}$

这是怎么回事?我做错了什么?在


Tags: 模块文件功能版本机器数据库sqliteversion
1条回答
网友
1楼 · 发布于 2024-09-27 00:18:17

好吧,我通过阅读源代码知道了发生了什么。当pyenv编译我的Python版本时,_sqlite模块是针对可笑的CentOS版本的“sqlite3.h”文件编译的。因此,Python模块没有定义SQLITE_OPEN_URI宏,这导致它给出一个硬编码的“URIs not supported”Python异常。在

为了解决这个问题,我必须设置以下环境变量:

# This is to direct pyenv to the linuxbrew include and library directories, when building versions of Python
export PYTHON_CONFIGURE_OPTS="LD_RUN_PATH=/home/linuxbrew/.linuxbrew/lib/ LDFLAGS=-L/home/linuxbrew/.linuxbrew/lib/ CPPFLAGS=-I/home/linuxbrew/.linuxbrew/include/"

相关问题 更多 >

    热门问题