Wie kann ich das sqlite3-Modul zu Python hinzufügen?
107
Kann mir jemand sagen, wie das sqlite3-Modul neben der neuesten Version von Python installiert wird? Ich verwende ein Macbook und habe in der Befehlszeile Folgendes versucht:
Wenn Ihre Python manuell aus dem Quellcode erstellt wird und dieser Fehler auftritt, sollten Sie zuerst das sqlite-devel-Paket installieren und dann Python neu erstellen, wie @falsetru sagte. Der Paketname variiert je nach Betriebssystem.
ngn999
Für alle, die versuchen, Python aus dem Quellcode zu erstellen und auf diesen Fehler stoßen: Diese wirklich gute Antwort behandelt den Bulild-Prozess und die Abhängigkeiten, die Sie benötigen. stackoverflow.com/a/6171511/6273503
Harper
Antworten:
186
Sie müssen das sqlite3Modul nicht installieren . Es ist in der Standardbibliothek enthalten (seit Python 2.5).
Ich habe tatsächlich eine Python 2.5.4, die sqlite3 nicht enthält :(
shevy
@ user722915, Gemäß den Neuerungen in Python 2.5 wurde das pysqlite-Modul ( pysqlite.org ), ein Wrapper für die eingebettete SQLite-Datenbank, der Standardbibliothek unter dem Paketnamen sqlite3 hinzugefügt.
Falsetru
10
Wenn Ihr Python3 manuell aus dem Quellcode erstellt wurde und dieser Fehler auftritt, sollten Sie zuerst das Paket sqlite-devel installieren und dann Python3 neu erstellen.
ngn999
@ ngn999, Sie sollten die Frage besser kommentieren, um OP darüber zu informieren. Da dies sehr lange beantwortet wurde und OP nicht benachrichtigt wird, wenn Sie die Antwort kommentieren.
Falsetru
3
@ ngn999, Übrigens, der Paketname variiert je nach Betriebssystem. In Ubuntu ist es zum Beispiel so libsqlite3-dev.
Falsetru
44
Ich habe Python 2.7.3 und dies hat mein Problem gelöst:
Normalerweise ist es enthalten. Wie @ ngn999 sagte, müssen Sie Ihre Python hinzufügen, wenn sie manuell aus dem Quellcode erstellt wurde.
Hier ist ein Beispiel für ein Skript, mit dem eine gekapselte Version (virtuelle Umgebung) von Python3 in Ihrem Benutzerverzeichnis mit einer gekapselten Version von sqlite3 eingerichtet wird .
INSTALL_BASE_PATH="$HOME/local"
cd ~
mkdir build
cd build[-f Python-3.6.2.tgz]|| wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
tar -zxvf Python-3.6.2.tgz[-f sqlite-autoconf-3240000.tar.gz ]|| wget https://www.sqlite.org/2018/sqlite-autoconf-3240000.tar.gz
tar -zxvf sqlite-autoconf-3240000.tar.gz
cd sqlite-autoconf-3240000./configure --prefix=${INSTALL_BASE_PATH}
make
make install
cd ../Python-3.6.2
LD_RUN_PATH=${INSTALL_BASE_PATH}/lib configure
LDFLAGS="-L ${INSTALL_BASE_PATH}/lib"
CPPFLAGS="-I ${INSTALL_BASE_PATH}/include"
LD_RUN_PATH=${INSTALL_BASE_PATH}/lib make./configure --prefix=${INSTALL_BASE_PATH}
make
make install
cd ~
LINE_TO_ADD="export PATH=${INSTALL_BASE_PATH}/bin:\$PATH"if grep -q -v "${LINE_TO_ADD}" $HOME/.bash_profile;then echo "${LINE_TO_ADD}">> $HOME/.bash_profile;fi
source $HOME/.bash_profile
Warum das? Möglicherweise möchten Sie eine modulare Python-Umgebung, die Sie vollständig zerstören und neu erstellen können, ohne Ihr Betriebssystem zu beeinträchtigen - für eine unabhängige Entwicklungsumgebung. In diesem Fall besteht die Lösung darin, sqlite3 auch modular zu installieren.
Dies kann auch passieren, wenn Sie Ihre Python-Versionen mit pyenv verwalten, aber nicht alle Systempakete installiert hatten, als der Python-Interpreter installiert wurde.
Antworten:
Sie müssen das
sqlite3
Modul nicht installieren . Es ist in der Standardbibliothek enthalten (seit Python 2.5).quelle
libsqlite3-dev
.Ich habe Python 2.7.3 und dies hat mein Problem gelöst:
quelle
Für Python Version 3:
quelle
Normalerweise ist es enthalten. Wie @ ngn999 sagte, müssen Sie Ihre Python hinzufügen, wenn sie manuell aus dem Quellcode erstellt wurde.
Hier ist ein Beispiel für ein Skript, mit dem eine gekapselte Version (virtuelle Umgebung) von Python3 in Ihrem Benutzerverzeichnis mit einer gekapselten Version von sqlite3 eingerichtet wird .
Warum das? Möglicherweise möchten Sie eine modulare Python-Umgebung, die Sie vollständig zerstören und neu erstellen können, ohne Ihr Betriebssystem zu beeinträchtigen - für eine unabhängige Entwicklungsumgebung. In diesem Fall besteht die Lösung darin, sqlite3 auch modular zu installieren.
quelle