Как я могу добавить модуль sqlite3 в Python?


109

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

pip install sqlite

но выскакивает ошибка.


3
Если ваш python собран из исходного кода вручную и встретил эту ошибку, вы должны сначала установить пакет sqlite-devel, а затем перестроить python, как сказал @falsetru, имя пакета будет варьироваться в зависимости от операционной системы.
ngn999

Для всех, кто пытается собрать python из исходного кода и сталкивается с этой ошибкой: этот действительно хороший ответ касается процесса сборки и необходимых вам зависимостей. stackoverflow.com/a/6171511/6273503
Harper

Ответы:


190

Устанавливать sqlite3модуль не нужно . Он включен в стандартную библиотеку (начиная с Python 2.5).


4
На самом деле у меня есть python 2.5.4, в который не входит sqlite3 :(
shevy 04

@ user722915, согласно Что нового в Python 2.5 , модуль pysqlite ( pysqlite.org ), оболочка для встроенной базы данных SQLite, был добавлен в стандартную библиотеку под именем пакета sqlite3.
falsetru 04

10
Если ваш python3 собран из исходного кода вручную и встретил эту ошибку, вы должны сначала установить пакет sqlite-devel, а затем перестроить python3.
ngn999

@ ngn999, лучше прокомментируйте вопрос, чтобы ОП знал. Потому что на это ответили очень долго, и OP не уведомляется, если вы комментируете ответ.
falsetru

3
@ ngn999, кстати, имя пакета будет зависеть от операционной системы. Например, в Ubuntu это libsqlite3-dev.
falsetru

44

У меня Python 2.7.3, и это решило мою проблему:

pip install pysqlite

10
Учтите, что это не применимо к Python 3.
Phyticist


16

Обычно он включен. Однако, как сказал @ 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

Зачем это делать? Возможно, вам понадобится модульная среда Python, которую вы можете полностью уничтожить и перестроить, не затрагивая вашу операционную систему - для независимой среды разработки. В этом случае решение также состоит в том, чтобы установить sqlite3 модульно.


1
Также может произойти, если вы используете pyenv для управления версиями Python, но у вас не были установлены все системные пакеты, когда был установлен интерпретатор Python.
MarkNS
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.