Xeo*_*oth 6 python sqlite debian python-3.x
我在 Debian 9.12 上安装了 Python 3.8 和 SQLite 3.16.2,并且需要升级到较新版本的 SQLite。我已经下载并编译了 SQLite 网站上可用的合并,并将其放入 中/usr/bin,所以当我这样做时
$ sqlite3 --version
Run Code Online (Sandbox Code Playgroud)
我得到 3.32.3 响应(这是我编译的版本)。
然而,当我这样做时
$ python3.8
>>> import sqlite3
>>> sqlite3.sqlite_version
Run Code Online (Sandbox Code Playgroud)
我得到的是 3.16.2,这是早期版本。如何更改 Python 选择的 SQLite 版本?
mkrieger1 建议这个问题可以回答我的问题。它在这里不起作用,因为那里提供的解决方案是针对 Python 2,而不是 Python 3。pysqlite2不适用于 Python 3。
就我而言,我无法替换为较新的版本,因为我找不到这些文件。(我安装了sqlite-autoconf-3350500)
我用另一种方式让它工作只需执行下面的命令
export LD_LIBRARY_PATH="/usr/local/lib"
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.35.5'
Run Code Online (Sandbox Code Playgroud)
小智 1
我解决这个问题的方法是找出您要导入的旧 sqlite 版本的路径:
import sqlite3
print(sqlite3.__file__)
Run Code Online (Sandbox Code Playgroud)
对我来说,这输出:
C:\Users\YOUR_USERNAME_HERE\AppData\Local\Programs\Python\Python38\lib\sqlite3\__init__.py
Run Code Online (Sandbox Code Playgroud)
进入lib路径:
C:\Users\YOUR_USERNAME_HERE\AppData\Local\Programs\Python\Python38\lib
Run Code Online (Sandbox Code Playgroud)
然后找到 sqlite3 文件夹并将其删除,然后将其替换为您的最新版本。重试:
C:\Users\YOUR_USERNAME_HERE\AppData\Local\Programs\Python\Python38\lib\sqlite3\__init__.py
Run Code Online (Sandbox Code Playgroud)
你应该得到你的新版本。