如何将sqlite3模块添加到Python?


107

有人可以告诉我如何在最新版本的Python上安装sqlite3模块吗?我正在使用Macbook,并在命令行上尝试了:

pip install sqlite

但是会弹出一个错误。


3
如果您的python是从源代码手动构建的,并且遇到此错误,则应首先安​​装sqlite-devel软件包,然后重新构建python,如@falsetru所述,软件包名称会因操作系统而异。
ngn999

对于尝试从源代码构建python并遇到此错误的每个人:这个非常好的答案可以解决繁琐的过程和所需的依赖项。stackoverflow.com/a/6171511/6273503
Harper

Answers:


187

您不需要安装sqlite3模块。它包含在标准库中(自Python 2.5起)。


4
我实际上有一个不包含sqlite3的python 2.5.4 :(
shevy

@ user722915,根据Python 2.5的新增功能, sqlsql 嵌入式数据库的包装pysqlite模块(pysqlite.org)已以包名称sqlite3添加到标准库中。
falsetru 2014年

10
如果您的python3是从源代码手动构建的,并且遇到此错误,则应先安装sqlite-devel软件包,然后重新构建python3。
ngn999

@ ngn999,您最好对这个问题发表评论,让OP知道。因为回答了很长时间,所以如果对答案发表评论,它不会通知OP。
falsetru

3
@ ngn999,顺便说一句,程序包名称会因操作系统而异。例如,在Ubuntu中,它是libsqlite3-dev
falsetru

44

我有python 2.7.3,这解决了我的问题:

pip install pysqlite

10
考虑到这是不是适用于Python的3
Phyticist


15

通常包括在内。但是,正如@ n​​gn999所说,如果您的python是从源代码手动构建的,则必须添加它。

这是一个脚本示例,该脚本将在用户目录中使用sqlite3封装版本设置Python3封装版本(虚拟环境)

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.