Проблема с обновлением версии Sqlite3 в CentOS для Python

Sep 24 2020

У меня есть CentOS 6в моей системе, и я пытаюсь обновить SQLite для Python. Я установил его из источника и выполняю sqlite --versionвозвратную версию, 3.33.0как ожидалось.

Однако, когда я пытаюсь проверить версию Python SQLite с помощью, import sqlite3; sqlite3.sqlite_version;я все равно получаю предыдущую версию SQLite 3.6.20.

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

Я пробовал решение здесь , это вообще не работает, после обновления LD_LIBRARY_PATHи проверки версии python SQLite он все еще дает '3.6.20', и здесь , когда я пытаюсь sudo LD_RUN_PATH=, он выдает ошибку No such file or directory, но когда я его выполняю без sudo LD_RUN_PATH=он успешно компилируется, но по-прежнему дает мне SQLite 3.6.20 (скомпилированный python без удаления).

Примечание. У меня несколько версий python3.

Что я могу сделать, чтобы решить эту проблему?

Ответы

Sarol Oct 04 2020 at 02:42

Когда я это сделал (в частности, пытался найти способ обновить sqlite3 для работающей программы python; не сработало ...), я скомпилировал sqlite и получил libsqlite3.so.0.8.6, а затем заменил общесистемный sqlite3 на тот. Для меня в debian это было в / usr / lib / x86_64-linux-gnu. Я действительно видел (хотя сейчас не могу найти где), что этот способ может вызвать проблемы при обновлении в будущем. Тем не менее, он обновил для меня python sqlite3.

sbluhm Oct 06 2020 at 12:45

Вы можете импортировать определенные версии:

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

Обратите внимание, что это работает только при первом импорте. Если sqlite будет импортирован до pkg_resources, ему понадобится последняя версия.