Я хотел бы использовать самую последнюю версию общей библиотеки sqlite3, напрямую скомпилированную из исходников с https://www.sqlite.org.
Перезапись /usr/lib/x86_64-linux-gnu/libsqlite3.so
или libsqlite3.so.0.8.6
новой скомпилированной библиотекой кажется плохой идеей, потому что это может привести к поломке некоторых инструментов ОС, которые используют Python и стандартный модуль sqlite3 и которым не нравится новая версия этой общей библиотеки.
Вопрос: как я могу продублировать модуль sqlite3
stdlib Python в модуль с именем sqlite3custom
, который вместо /usr/lib/python3.5/lib-dynload/_sqlite3.cpython-35m-x86_64-linux-gnu.so
будет использовать /path/to/my/custom/sqlite.so
?
Тогда я бы использовал import sqlite3custom
в своем коде с точно таким же API, что и sqlite3
, и это позволило бы избежать прикосновения к встроенному модулю sqlite3.
Преимущество: мы могли бы даже иметь оба в одном коде для сравнения:
import sqlite3
print(sqlite3.sqlite_version) # 3.23.1
import sqlite3custom
print(sqlite3custom.sqlite_version) # 3.36 (2021-06-18), compiled from source
Примечание: это связано, но немного отличается от обновить sqlite3 Python в Debian и Несколько версий Sqlite3 для Python на одном сервере.