Problema durante l'aggiornamento della versione Sqlite3 su CentOS per Python

Sep 24 2020

Ho CentOS 6sul mio sistema e sto cercando di aggiornare SQLite per Python. L'ho installato dal sorgente e l'esecuzione sqlite --versionrestituisce la versione 3.33.0come previsto.

Tuttavia, quando provo a controllare la versione SQLite di python utilizzando, import sqlite3; sqlite3.sqlite_version;ottengo ancora la versione precedente di SQLite 3.6.20.

Software Locations:
     Python 3.6.9 - /usr/bin/python3
     Sqlite3 - /usr/bin/sqlite3

Ho provato la soluzione qui , questo non funziona affatto, dopo aver aggiornato LD_LIBRARY_PATHe controllato la versione SQLite di python dà ancora '3.6.20', e qui , quando provo sudo LD_RUN_PATH=, mi dà l'errore No such file or directory, ma quando lo eseguo senza sudo LD_RUN_PATH=, si compila con successo ma mi dà ancora SQLite '3.6.20' (Python compilato senza disinstallare).

Nota: ho più versioni di python3.

Cosa posso fare per risolvere questo problema?

Risposte

Sarol Oct 04 2020 at 02:42

Quando l'ho fatto (in particolare cercando di trovare un modo per aggiornare sqlite3 per un programma python in esecuzione; non ha funzionato ...), ho compilato sqlite e ottenuto libsqlite3.so.0.8.6, quindi ho sostituito sqlite3 a livello di sistema con quello. Per me su Debian, era in / usr / lib / x86_64-linux-gnu. Ho visto (anche se ora non riesco a trovare dove) che in questo modo potrebbe causare problemi durante l'aggiornamento in futuro. Tuttavia, ha aggiornato sqlite3 di Python per me.

sbluhm Oct 06 2020 at 12:45

Puoi importare versioni specifiche:

__requires__= 'sqlite3==3.6.20'
import pkg_resources
pkg_resources.require("sqlite3==3.6.20")
import sqlite

Nota che funziona solo alla prima importazione. Se sqlite viene importato prima di pkg_resources, richiederà l'ultima versione.