【问题标题】:How to change SQLite version used by Python?如何更改 Python 使用的 SQLite 版本?
【发布时间】:2021-05-19 17:17:29
【问题描述】:

我在 Debian 9.12 上安装了 Python 3.8 和 SQLite 3.16.2,我需要升级到更新版本的 SQLite。我已经下载并编译了 SQLite 网站上可用的合并,并将其放在 /usr/bin 中,所以当我这样做时

$ sqlite3 --version

我得到 3.32.3 作为响应(这是我编译的版本)。

但是,当我这样做时

$ python3.8
>>> import sqlite3
>>> sqlite3.sqlite_version

我得到的是 3.16.2,这是较早的版本。如何更改 Python 拾取的 SQLite 版本?

mkrieger1 建议this question 可以回答我的问题。它在这里不起作用,因为那里提供的解决方案针对的是 Python 2,而不是 Python 3。pysqlite2 不适用于 Python 3。

【问题讨论】:

  • 这能回答你的问题吗? Python sqlite3: run different sqlite3 version
  • 该答案是为 Python 2 提供的,我正在使用 Python 3。不幸的是,pysqlite2 不适用于 Python 3。
  • @Xeoth 我回答你的问题了吗?
  • 你真的需要它吗?它可能会打破对其他 python 标准库模块的一些假设。我认为您可以使用您想要的版本重新编译 Python [并检查 Python 源代码中的测试是否安全]。

标签: python python-3.x sqlite debian


【解决方案1】:

我会绕过它的方法是找出您要导入的旧 sqlite 版本的路径:

import sqlite3
print(sqlite3.__file__)

对我来说,这个输出:

C:\Users\YOUR_USERNAME_HERE\AppData\Local\Programs\Python\Python38\lib\sqlite3\__init__.py

进入库路径:

C:\Users\YOUR_USERNAME_HERE\AppData\Local\Programs\Python\Python38\lib

然后找到 sqlite3 文件夹并将其删除,然后将其替换为您的最新版本。重试:

>>> import sqlite3
>>> sqlite3.sqlite_version

你应该得到你的新版本。

【讨论】:

    【解决方案2】:

    在我的情况下,我无法用较新的版本替换,因为我找不到这些文件。 (我安装了 sqlite-autoconf-3350500)

    我用另一种方式让它工作只是在命令下面执行

    export LD_LIBRARY_PATH="/usr/local/lib"
    
    >>> import sqlite3
    >>> sqlite3.sqlite_version
    '3.35.5'
    

    【讨论】:

      猜你喜欢
      • 2016-08-13
      • 2017-01-02
      • 2011-01-10
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      • 1970-01-01
      • 2021-04-18
      • 1970-01-01
      相关资源
      最近更新 更多