Como posso adicionar o módulo sqlite3 ao Python?


107

Alguém pode me dizer como instalar o módulo sqlite3 junto com a versão mais recente do Python? Estou usando um Macbook e, na linha de comando, tentei:

pip install sqlite

mas um erro aparece.


3
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).


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

pip install pysqlite

10
Considere que isso não se aplica ao Python 3.
Fítico

40

Para Python versão 3:

pip install pysqlite3 

15

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.


1
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.
MarkNS
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.