Вы можете попытаться принудительно загрузить библиотеку с помощью:
LD_PRELOAD=/path/to/libsqlite3.so.0 python ...
Библиотека будет загружена в память при запуске Python.Поэтому обычно, когда модуль _sqlite3
будет импортирован, он не будет загружать libsqlite3.so.0 и использовать версию, уже загруженную в память.
Редактировать
LD_LIBRARY_PATH в этом случае не работает, потому что libsqlite3.so.0 загружается модулем _sqlite.so, загружается dlopen () в Python.В этом случае man-страница dlopen () говорит, что порядок:
(только ELF) Если исполняемый файл для вызывающей программы содержит тег DT_RPATH и не содержитВ теге DT_RUNPATH производится поиск в каталогах, перечисленных в теге DT_RPATH.
Если во время запуска программы переменная среды LD_LIBRARY_PATH была определена как содержащая список, разделенный двоеточиямииз каталогов, то они ищутся.(В качестве меры безопасности эта переменная игнорируется для программ set-user-ID и set-group-ID.)
...
Таким образом, если DT_RPATH установлен в двоичном файле, он будет принят до вашего LD_LIBRARY_PATH.