Problem z aktualizacją wersji Sqlite3 na CentOS for Python

Sep 24 2020

Mam CentOS 6w systemie i próbuję zaktualizować SQLite dla Pythona. Zainstalowałem go ze źródła i wykonuję sqlite --versionwersję zwracaną 3.33.0zgodnie z oczekiwaniami.

Jednak kiedy próbuję sprawdzić wersję Pythona SQLite za pomocą import sqlite3; sqlite3.sqlite_version;, nadal otrzymuję poprzednią wersję SQLite 3.6.20.

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

Wypróbowałem rozwiązanie tutaj , to w ogóle nie działa, po aktualizacji LD_LIBRARY_PATHi sprawdzeniu pythona w wersji SQLite nadal daje '3.6.20', a tutaj jak próbuję sudo LD_RUN_PATH=to daje mi błąd No such file or directory, ale kiedy go wykonuję bez sudo LD_RUN_PATH=, pomyślnie się kompiluje, ale nadal daje mi SQLite „3.6.20” (skompilowany Python bez odinstalowywania).

Uwaga: mam wiele wersji Python3.

Co mogę zrobić, aby rozwiązać ten problem?

Odpowiedzi

Sarol Oct 04 2020 at 02:42

Kiedy to zrobiłem (szczególnie próbując znaleźć sposób na zaktualizowanie sqlite3 dla działającego programu w Pythonie; nie działało ...), skompilowałem sqlite i otrzymałem libsqlite3.so.0.8.6, a następnie zastąpiłem systemowy sqlite3 na że. Dla mnie na Debianie było to w / usr / lib / x86_64-linux-gnu. Widziałem (chociaż teraz nie mogę znaleźć miejsca), że ten sposób może powodować problemy podczas aktualizacji w przyszłości. Zaktualizował jednak dla mnie sqlite3 w Pythonie.

sbluhm Oct 06 2020 at 12:45

Możesz importować określone wersje:

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

Pamiętaj, że działa to tylko przy pierwszym imporcie. Jeśli sqlite zostanie zaimportowane przed pkg_resources, zajmie najnowszą wersję.