Se seu python for construído a partir do código-fonte manualmente e encontrar esse erro, você deve instalar o pacote sqlite-devel primeiro e, em seguida, reconstruir o python, como @falsetru disse, o nome do pacote irá variar dependendo do sistema operacional.
ngn999
Para todos que tentam construir python a partir do código-fonte e se deparam com este erro: Esta resposta realmente boa aborda o processo de construção e as dependências de que você precisa. stackoverflow.com/a/6171511/6273503
Harper
Respostas:
187
Você não precisa instalar o sqlite3módulo. Ele está incluído na biblioteca padrão (desde Python 2.5).
Na verdade, tenho um python 2.5.4 que não inclui sqlite3 :(
shevy
@ user722915, De acordo com o que há de novo no Python 2.5 , O módulo pysqlite ( pysqlite.org ), um wrapper para o banco de dados embutido SQLite, foi adicionado à biblioteca padrão sob o nome de pacote sqlite3.
falsetru
10
se o seu python3 for construído a partir do código-fonte manualmente e encontrar esse erro, você deve instalar o pacote sqlite-devel primeiro e, em seguida, reconstruir o python3.
ngn999
@ ngn999, é melhor você comentar a questão para avisar o OP. Porque isso foi respondido há muito tempo, e não é notificado ao OP se você comentar a resposta.
falsetru
3
@ ngn999, BTW, o nome do pacote irá variar dependendo do sistema operacional. Por exemplo, no Ubuntu, é libsqlite3-dev.
falsetru
44
Eu tenho o python 2.7.3 e isso resolveu meu problema:
Normalmente, ele está incluído. No entanto, como @ ngn999 disse, se seu python foi compilado a partir do código-fonte manualmente, você terá que adicioná-lo.
Aqui está um exemplo de um script que irá configurar uma versão encapsulada (ambiente virtual) de Python3 em seu diretório de usuário com uma versão encapsulada de 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
Por que fazer isso? Você pode querer um ambiente Python modular que possa destruir e reconstruir completamente sem afetar seu sistema operacional - para um ambiente de desenvolvimento independente. Nesse caso, a solução é instalar o sqlite3 de maneira modular também.
Também pode acontecer se você usar o pyenv para gerenciar suas versões do Python, mas não tinha todos os pacotes do sistema instalados quando o interpretador do Python foi instalado.
Respostas:
Você não precisa instalar o
sqlite3
módulo. Ele está incluído na biblioteca padrão (desde Python 2.5).fonte
libsqlite3-dev
.Eu tenho o python 2.7.3 e isso resolveu meu problema:
fonte
Para Python versão 3:
fonte
Normalmente, ele está incluído. No entanto, como @ ngn999 disse, se seu python foi compilado a partir do código-fonte manualmente, você terá que adicioná-lo.
Aqui está um exemplo de um script que irá configurar uma versão encapsulada (ambiente virtual) de Python3 em seu diretório de usuário com uma versão encapsulada de sqlite3 .
Por que fazer isso? Você pode querer um ambiente Python modular que possa destruir e reconstruir completamente sem afetar seu sistema operacional - para um ambiente de desenvolvimento independente. Nesse caso, a solução é instalar o sqlite3 de maneira modular também.
fonte