Problem beim Aktualisieren der Sqlite3-Version unter CentOS für Python
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
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.
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.