Problème de mise à niveau de la version Sqlite3 sur CentOS pour Python

Sep 24 2020

J'ai CentOS 6sur mon système et j'essaye de mettre à jour SQLite pour Python. Je l'ai installé à partir de la source et j'ai exécuté la sqlite --versionversion de retour 3.33.0comme prévu.

Cependant, lorsque j'essaie de vérifier la version de python SQLite en utilisant, import sqlite3; sqlite3.sqlite_version;j'obtiens toujours la version précédente de SQLite 3.6.20.

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

J'ai essayé la solution ici , cela ne fonctionne pas du tout, après la mise à jour LD_LIBRARY_PATHet la vérification de la version python SQLite, il donne toujours '3.6.20', et ici , quand j'essaye sudo LD_RUN_PATH=, cela me donne l'erreur No such file or directory, mais quand je l'exécute sans sudo LD_RUN_PATH=, il compile avec succès mais me donne toujours SQLite '3.6.20' (python compilé sans désinstallation).

Remarque: j'ai plusieurs versions de python3.

Que puis-je faire pour résoudre ce problème?

Réponses

Sarol Oct 04 2020 at 02:42

Quand je l'ai fait (en essayant spécifiquement de trouver un moyen de mettre à jour sqlite3 pour un programme python en cours d'exécution; cela n'a pas fonctionné ...), j'ai compilé sqlite et j'ai obtenu libsqlite3.so.0.8.6, puis j'ai remplacé le sqlite3 à l'échelle du système par cette. Pour moi, sur Debian, c'était dans / usr / lib / x86_64-linux-gnu. J'ai vu (même si maintenant je ne peux pas trouver où) que cette façon peut causer des problèmes lors de la mise à jour à l'avenir. Cependant, il a mis à jour sqlite3 de python pour moi.

sbluhm Oct 06 2020 at 12:45

Vous pouvez importer des versions spécifiques:

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

Notez que cela ne fonctionne que lors de la première importation. Si sqlite est importé avant pkg_resources, il prendra la dernière version.