如何将 sqlite3 模块添加到 Python?

Posted

技术标签:

【中文标题】如何将 sqlite3 模块添加到 Python?【英文标题】:How can I add the sqlite3 module to Python? 【发布时间】:2013-11-01 02:19:35 【问题描述】:

谁能告诉我如何在最新版本的 Python 旁边安装 sqlite3 模块? 我使用的是 Macbook,并且在命令行上尝试过:

pip install sqlite

但是弹出一个错误。

【问题讨论】:

如果你的python是手动从源代码构建的,遇到这个错误,你应该先安装sqlite-devel包,然后重新构建python,正如@falsetru所说,包名会因操作而异系统。 对于尝试从源代码构建 python 并遇到此错误的人:这个非常好的答案解决了您需要的构建过程和依赖项。 ***.com/a/6171511/6273503 【参考方案1】:

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

【讨论】:

我实际上有一个不包含 sqlite3 的 python 2.5.4 :( @user722915,根据What's New in Python 2.5, pysqlite 模块(pysqlite.org),SQLite 嵌入式数据库的包装器,已添加到包名称 sqlite3 下的标准库中。 如果你的python3是手动从源码编译的,遇到这个错误,你应该先安装sqlite-devel包,再重新编译python3。 @ngn999,顺便说一句,软件包名称会因操作系统而异。例如,在 Ubuntu 中,它是 libsqlite3-dev 真的是我的救命稻草!【参考方案2】:

对于 Python 版本 3:

pip install pysqlite3 

【讨论】:

pysqlite3 只是一个包装器。如果您的系统中实际上没有 SQLite 库(或者如果您从源代码构建 Python,则没有开发包),它将无法工作。【参考方案3】:

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

pip install pysqlite

【讨论】:

请考虑这不适用于 Python 3。【参考方案4】:

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

下面是一个脚本示例,该脚本将在您的用户目录中设置 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。

【讨论】:

如果您使用 pyenv 管理您的 Python 版本,但在安装 Python 解释器时没有安装所有系统包,也会发生这种情况。 我有一个要求,我不想干扰现有的 python 设置。这正是我所需要的。谢谢!!【参考方案5】:

如果你在 python 中构建的 Sqlite 有错误,你可以使用 Conda 来解决这个冲突

conda install sqlite

【讨论】:

以上是关于如何将 sqlite3 模块添加到 Python?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ubuntu 16.04 上将 FTS5 扩展与带有 Python 3.7 的 sqlite3 python 模块一起使用?

Python3教程:数据库模块(sqlite3,SQLite3)的运用

如何将 CSV 文件迁移到 Sqlite3(或 MySQL)? - Python

将 Django 数据库:SQLITE3 更改为 MARIADB

如何将 sqlite3 模块与电子一起使用?

sh 如何将模块添加到python模块列表/路径