如何将sqlite3安装到Python?

Jin*_*que 86 python sqlite pip

有人能告诉我如何在最新版本的Python上安装sqlite3包吗?我使用Macbook,并在命令行上尝试:

pip install sqlite
Run Code Online (Sandbox Code Playgroud)

但会弹出一个错误.

fal*_*tru 153

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

  • 如果你的python3是手动构建的,并且遇到这个错误,你应该首先安装sqlite-devel包,然后重建python3. (7认同)
  • 谢谢你:)想知道我做错了什么 (5认同)
  • @ngn999,顺便说一句,软件包名称将因操作系统而异。例如,在 Ubuntu 中,它是 `libsqlite3-dev`。 (4认同)
  • 简直就是我的救命恩人! (4认同)
  • 我实际上有一个不包含sqlite3的python 2.5.4 :( (2认同)

nic*_*o86 43

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

pip install pysqlite
Run Code Online (Sandbox Code Playgroud)

  • 考虑到这不适用于Python 3. (9认同)

小智 25

对于Python版本3:

pip install pysqlite3 
Run Code Online (Sandbox Code Playgroud)

  • pysqlite3 只是一个包装器。如果您的系统中实际上没有 SQLite 库(或者如果您从源代码构建 Python 则没有 devel 包),那么它将无法工作。 (6认同)

Jon*_*mar 12

通常,它包括在内.但是,正如@ n​​gn999所说,如果您的python是手动构建的,那么您必须添加它.

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

INSTALL_BASE_PATH="$HOME/opt"
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
Run Code Online (Sandbox Code Playgroud)

为什么这样?您可能需要一个模块化的python环境,您可以完全销毁和重建,而不会影响您的操作系统 - 适用于独立的开发环境.在这种情况下,解决方案是模块化安装sqlite3.

  • 如果您使用 pyenv 来管理 Python 版本,但在安装 Python 解释器时没有安装所有系统包,也可能会发生这种情况。 (2认同)

You*_*eod 5

如果你在Python内置的Sqlite中有错误,你可以使用Conda来解决这个冲突

conda install sqlite
Run Code Online (Sandbox Code Playgroud)