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).
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.
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.
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.
Odpowiedzi:
Nie musisz instalować
sqlite3
modułu. Jest zawarty w bibliotece standardowej (od Pythona 2.5).źródło
libsqlite3-dev
.Mam Pythona 2.7.3 i to rozwiązało mój problem:
źródło
W przypadku języka Python w wersji 3:
źródło
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 .
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.
źródło