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:

pip install sqlite

Es wird jedoch ein Fehler angezeigt.

Jin-Dominique
quelle
3
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).

falsetru
quelle
4
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:

pip install pysqlite
nicolimo86
quelle
10
Bedenken Sie, dass dies nicht für Python 3 gilt.
Phyticist
40

Für Python Version 3:

pip install pysqlite3 
Hoss
quelle
15

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.

Jonathan Komar
quelle
1
Dies kann auch passieren, wenn Sie Ihre Python-Versionen mit pyenv verwalten, aber nicht alle Systempakete installiert hatten, als der Python-Interpreter installiert wurde.
MarkNS