Як я можу додати модуль sqlite3 до Python?


107

Хтось може сказати мені, як встановити модуль sqlite3 поряд з останньою версією Python? Я використовую Macbook, і в командному рядку я спробував:

pip install sqlite

але з’являється помилка


3
Якщо ваш python побудований з джерела вручну, і виправте цю помилку, вам слід спочатку встановити пакет sqlite-devel, а потім відновити python, як сказав @falsetru, назва пакета буде відрізнятися залежно від операційної системи.
ngn999

Для того, щоб everone намагався створити python з джерела і зіткнувся з цією помилкою: ця дійсно хороша відповідь стосується буліда-процесу та залежної від вас необхідності. stackoverflow.com/a/6171511/6273503
Харпер

Відповіді:


187

Вам не потрібно встановлювати sqlite3модуль. Він включений до стандартної бібліотеки (починаючи з Python 2.5).


4
У мене фактично є python 2.5.4, який не включає sqlite3 :(
shevy

@ user722915, Згідно з новими в Python 2.5 , модуль pysqlite ( pysqlite.org ), обгортка вбудованої бази даних SQLite, доданий до стандартної бібліотеки під назвою пакета sqlite3.
фальсетру

10
якщо ваш python3 побудований з джерела вручну, і виправте цю помилку, спочатку слід встановити пакет sqlite-devel, а потім відновити python3.
ngn999

@ ngn999, Ви краще прокоментуйте це питання, щоб повідомити про це ОП. Тому що на це відповідали дуже довго, і він не повідомляється ОП, якщо коментуєш відповідь.
фальсетру

3
@ ngn999, BTW, назва пакета буде відрізнятися залежно від операційної системи. Наприклад, в Ubuntu це libsqlite3-dev.
фальсетру

44

У мене є python 2.7.3, і це вирішило мою проблему:

pip install pysqlite

10
Вважайте, що це не стосується Python 3.
Фітик


15

Зазвичай вона включається. Однак, як сказав @ ngn999, якщо ваш пітон був побудований з джерела вручну, вам доведеться його додати.

Ось приклад сценарію, який встановить інкапсульовану версію (віртуальне середовище) Python3 у вашому каталозі користувачів із інкапсульованою версією 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

Навіщо це робити? Вам може знадобитися модульне середовище пітона, яке ви можете повністю знищити та відновити, не впливаючи на вашу операційну систему - для незалежного середовища розробки. У цьому випадку рішенням також є встановлення sqlite3 модульно.


1
Це також може статися, якщо ви використовуєте pyenv для управління версіями Python, але у вас не було встановлено всіх системних пакетів, коли був встановлений інтерпретатор Python.
MarkNS
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.