Problem beim Aktualisieren der Sqlite3-Version unter CentOS für Python

Sep 24 2020

Ich habe CentOS 6auf meinem System und ich versuche, SQLite für Python zu aktualisieren. Ich habe es von der Quelle installiert und die sqlite --versionRückgabeversion 3.33.0wie erwartet ausgeführt.

Wenn ich jedoch versuche, die Python-SQLite-Version mit zu überprüfen, import sqlite3; sqlite3.sqlite_version;erhalte ich immer noch die vorherige SQLite-Version 3.6.20.

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

Ich habe die Lösung hier ausprobiert , dies funktioniert überhaupt nicht. Nach dem Aktualisieren LD_LIBRARY_PATHund Überprüfen der Python SQLite-Version gibt es immer noch '3.6.20', und hier , wenn ich es versuche sudo LD_RUN_PATH=, gibt es mir den Fehler No such file or directory, aber wenn ich es ausführe ohne sudo LD_RUN_PATH=wird es erfolgreich kompiliert, gibt mir aber trotzdem SQLite '3.6.20' (Kompiliertes Python ohne Deinstallation).

Hinweis: Ich habe mehrere Python3-Versionen.

Was kann ich tun, um dieses Problem zu beheben?

Antworten

Sarol Oct 04 2020 at 02:42

Als ich es tat (speziell versuchte ich einen Weg zu finden, um sqlite3 für ein laufendes Python-Programm zu aktualisieren; funktionierte nicht ...), kompilierte ich sqlite und bekam libsqlite3.so.0.8.6 und ersetzte dann das systemweite sqlite3 durch Das. Für mich auf Debian war das in / usr / lib / x86_64-linux-gnu. Ich habe gesehen (obwohl ich jetzt nicht finden kann, wo), dass dieser Weg Probleme bei der zukünftigen Aktualisierung verursachen kann . Es hat jedoch Pythons sqlite3 für mich aktualisiert.

sbluhm Oct 06 2020 at 12:45

Sie können bestimmte Versionen importieren:

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

Beachten Sie, dass dies nur beim ersten Import funktioniert. Wenn SQLite vor pkg_resources importiert wird, wird die neueste Version verwendet.