In Python3 musste ich verschiedene Versionen von SQLite3 und SQLite3 verwenden, die ich selbst verbessert habe, und habe sie als Memorandum zusammengefasst.
Das Betriebssystem ist CentOS 7.7. Sie können nach außen zugreifen, indem Sie Proxy usw. einstellen.
$ cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
Installieren Sie zuerst Python3. Die Version von Python3 ist 3.6.8.
$ sudo yum install python3
$ python3 --version
Python 3.6.8
Überprüfen Sie die SQLite3-Version mit dem SQLite3-Befehl und Python3.
$ sqlite3 --version
3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668
$ python3
Python 3.6.8 (default, Aug 7 2019, 17:28:10)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.7.17'
Ich habe SQLite 3.7.17 installiert und Python3 verwendet auch SQLite 3.7.17.
Holen Sie sich die neueste Version von SQLite3 (3.31.1). Ändern Sie nach dem Abrufen und Extrahieren mit wget den Verzeichnisnamen in sqlite-3.31.01.
$ wget https://www.sqlite.org/2020/sqlite-autoconf-3310100.tar.gz
$ tar zxvf sqlite-autoconf-3310100.tar.gz
$ mv sqlite-autoconf-3310100 sqlite-3.31.01
Erstellen Sie SQLite3.
$ cd sqlite-3.31.01
$ ./configure
$ make
$ ./sqlite3 --version
3.31.1 2020-01-27 19:55:54 3bfa9cc97da10598521b342961df8f5f68c7388fa117345eeb516eaa837bb4d6
Überprüfen Sie die Datei. Die SQLite3-Bibliothek befindet sich im Verzeichnis .libs.
$ ls -a
. Makefile.fallback config.guess install-sh sqlite3-shell.o sqlite3.pc
.. Makefile.in config.log libsqlite3.la sqlite3-sqlite3.o sqlite3.pc.in
.deps Makefile.msc config.status libtool sqlite3.1 sqlite3.rc
.libs README.txt config.sub ltmain.sh sqlite3.c sqlite3ext.h
INSTALL Replace.cs configure missing sqlite3.h tea
Makefile aclocal.m4 configure.ac shell.c sqlite3.lo
Makefile.am compile depcomp sqlite3 sqlite3.o
$ ls -a .libs
. libsqlite3.a libsqlite3.lai libsqlite3.so.0 sqlite3.o
.. libsqlite3.la libsqlite3.so libsqlite3.so.0.8.6
Geben Sie den absoluten Pfad von .libs in der Umgebungsvariablen LD_LIBRARY_PATH an.
$ export LD_LIBRARY_PATH=$HOME/sqlite-3.31.01/.libs
$ echo $LD_LIBRARY_PATH
/home/mototaka/sqlite-3.31.01/.libs
Lassen Sie uns die Version von SQLite3 in Python3 überprüfen.
$ python3
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.31.1'
In Python3 haben wir bestätigt, dass die neueste Version von SQLite, 3.31.1, verwendet werden kann. Lassen Sie uns auch die native SQLite-Funktion sqlite_version () überprüfen.
$ python3
>>> import sqlite3
>>> con = sqlite3.connect(":memory:")
>>> cur = con.cursor()
>>> cur.execute("SELECT sqlite_version()")
>>> cur.fetchone()
('3.31.1',)
In ähnlicher Weise haben wir in Python3 bestätigt, dass die neueste Version von SQLite, 3.31.1, verfügbar ist.
Holen Sie sich SQLite3 3.20.1 und erstellen Sie es.
$ wget https://www.sqlite.org/2017/sqlite-autoconf-3200100.tar.gz
$ tar zxvf sqlite-autoconf-3200100.tar.gz
$ mv sqlite-autoconf-3200100 sqlite-3.20.01
$ cd sqlite-3.20.01/
$ ./configure
$ make
$ ./sqlite3 --version
3.20.1 2017-08-24 16:21:36 8d3a7ea6c5690d6b7c3767558f4f01b511c55463e3f9e64506801fe9b74dce34
Geben Sie dieses Mal den relativen Pfad von .libs in der Umgebungsvariablen LD_LIBRARY_PATH an.
$ export LD_LIBRARY_PATH=./libs
Lassen Sie uns die Version von SQLite3 in Python3 überprüfen.
$ python3
>>> import sqlite3
>>> sqlite3.sqlite_version
'3.20.1'
Mit Python3 konnte ich bestätigen, dass das erstellte SQLite 3.20.1 verwendet werden kann. Durch Angabe des relativen Pfads von .libs in LD_LIBRARY_PATH können verschiedene SQLites aus Python3 verwendet werden, indem das Verzeichnis in der folgenden Umgebung geändert wird.
$ ls
sqlite3.00.08 sqlite3.06.23.1 sqlite3.12.02 sqlite3.18.02 sqlite3.23.00 sqlite3.29.00
sqlite3.01.06 sqlite3.07.17 sqlite3.13.00 sqlite3.19.03 sqlite3.24.00 sqlite3.30.01
sqlite3.02.07 sqlite3.08.11.1 sqlite3.14.02 sqlite3.2.8 sqlite3.25.03 sqlite3.31.01
sqlite3.03.17 sqlite3.09.03 sqlite3.15.02 sqlite3.20.01 sqlite3.26.00
sqlite3.04.02 sqlite3.10.02 sqlite3.16.02 sqlite3.21.00 sqlite3.27.02
sqlite3.05.09 sqlite3.11.01 sqlite3.17.02 sqlite3.22.00 sqlite3.28.00
Im Fall von SQLite ist es im Gegensatz zu anderen Datenbanken schwierig, die Datenbank so zu ändern, dass eine Verbindung mit Treiber- und Verbindungsinformationen hergestellt wird, und ich dachte, ich müsste den Quellcode von Python3 im schlimmsten Fall verbessern, verwende jedoch die Umgebungsvariable LD_LIBRARY_PATH. Dies machte es überraschend einfach, verschiedene Versionen von SQLite3 zu verwenden. Da ich dieses Mal keine anderen Root-Berechtigungen als die Installation von Pyhton3 verwendet habe, halte ich es für eine gute Idee, die Funktionsprüfung mit verschiedenen Versionen einfach auszuprobieren.
Wenn Sie Fehler oder Bedenken bezüglich der Beschreibung finden, würden wir uns freuen, wenn Sie uns in der Bearbeitungsanfrage oder im Kommentar Feedback geben könnten.
Recommended Posts