Jak mogę dodać moduł sqlite3 do Pythona?

109

Czy ktoś może mi powiedzieć, jak zainstalować moduł sqlite3 wraz z najnowszą wersją Pythona? Używam Macbooka iw wierszu poleceń próbowałem:

pip install sqlite

ale wyskakuje błąd.

Jin-Dominique
źródło
3
Jeśli twój Python jest zbudowany ręcznie ze źródła i napotka ten błąd, powinieneś najpierw zainstalować pakiet sqlite-devel, a następnie przebudować pythona, jak powiedział @falsetru, nazwa pakietu będzie się różnić w zależności od systemu operacyjnego.
ngn999
Dla każdego, kto próbuje zbudować Pythona ze źródła i napotyka ten błąd: Ta naprawdę dobra odpowiedź dotyczy procesu tworzenia i zależności, których potrzebujesz. stackoverflow.com/a/6171511/6273503
Harper

Odpowiedzi:

190

Nie musisz instalować sqlite3modułu. Jest zawarty w bibliotece standardowej (od Pythona 2.5).

falsetru
źródło
4
Właściwie mam Pythona 2.5.4, który nie zawiera sqlite3 :(
shevy,
@ user722915, Według Co nowego w Pythonie 2.5 , moduł pysqlite ( pysqlite.org ), opakowanie dla osadzonej bazy danych SQLite, został dodany do biblioteki standardowej pod nazwą pakietu sqlite3.
falsetru
10
jeśli twój python3 jest tworzony ręcznie ze źródła i napotyka ten błąd, powinieneś najpierw zainstalować pakiet sqlite-devel, a następnie odbudować python3.
ngn999
@ ngn999, Lepiej skomentuj pytanie, aby OP wiedział o tym. Ponieważ odpowiedź na to pytanie była udzielana bardzo długo i nie jest powiadamiany o OP, jeśli skomentujesz odpowiedź.
falsetru
3
@ ngn999, BTW, nazwa pakietu będzie się różnić w zależności od systemu operacyjnego. Na przykład w Ubuntu jest to libsqlite3-dev.
falsetru
44

Mam Pythona 2.7.3 i to rozwiązało mój problem:

pip install pysqlite
nicolimo86
źródło
10
Weź pod uwagę, że nie dotyczy to Pythona 3.
Phyticist
41

W przypadku języka Python w wersji 3:

pip install pysqlite3 
Hoss
źródło
16

Zwykle jest wliczony w cenę. Jednak, jak powiedział @ ngn999, jeśli twój Python został skompilowany ręcznie ze źródeł, będziesz musiał go dodać.

Oto przykład skryptu, który skonfiguruje zhermetyzowaną wersję (środowisko wirtualne) języka Python3 w katalogu użytkownika za pomocą hermetyzowanej wersji sqlite3 .

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

Czemu to robić? Możesz potrzebować modułowego środowiska Pythona, które można całkowicie zniszczyć i odbudować bez wpływu na system operacyjny - dla niezależnego środowiska programistycznego. W tym przypadku rozwiązaniem jest również zainstalowanie sqlite3 modułowo.

Jonathan Komar
źródło
1
Może się również zdarzyć, jeśli używasz pyenv do zarządzania wersjami Pythona, ale nie masz zainstalowanych wszystkich pakietów systemowych podczas instalacji interpretera Pythona.
MarkNS