Python 3.2:无法导入sqlite3模块

7 投票
4 回答
10295 浏览
提问于 2025-04-17 08:59

我刚在ubuntu 10.04.3上安装了python 3.2.2(按照readme文件里的所有说明),然后尝试导入sqlite3模块,结果是:

No module named _sqlite3

然后我查看了lib-dynload目录,发现里面没有文件 _sqlite3.so(但是在python 2.6里是有的)。

这个问题怎么解决呢?

谢谢!

4 个回答

1

我在ubuntu 12.04上使用3.4.1版本的Python时也遇到了同样的问题,特别是在使用SQLAlchemy库的时候。问题的原因正如其他人提到的,我的系统在编译和安装Python 3.4.1之前没有安装开发包。所以我做了以下操作:

sudo apt-get install libsqlite3-dev

然后我去到我提取的Python源代码目录,按照这个问题的回答中的步骤重新编译。之后我就能够:

Python 3.4.1 (default)
[GCC 4.6.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>>
8

下载 Python 3.3.2 http://www.python.org/getit/

在从源代码编译 Python 之前,你需要先安装 sqlite3开发库(还有其他一些模块,比如 readline、ssl 等)。Python 的 sqlite 模块的 C 源代码是包含在 Python 的源代码里的;不过在编译的时候需要 sqlite3 的开发文件。这个开发文件不是一个单独的库,而是 Python 的一部分。

如果你是从源代码安装的,那么你需要安装 sqlite3 的开发库。

sudo apt-get install libsqlite3-dev

在从源代码编译 Python 之前,我应该安装哪些包/库? https://askubuntu.com/questions/21547/what-are-the-packages-libraries-i-should-install-before-compiling-python-from-so

sudo apt-get install libreadline-dev
sudo apt-get install libssl-dev

常见开发环境的列表 ...

build-essential (obviously)
libz-dev        (also pretty common and essential)
libreadline-dev (or the Python prompt is crap)
libncursesw5-dev
libssl-dev
libgdbm-dev
libsqlite3-dev
libbz2-dev
liblzma-dev
tk-dev
libdb-dev
libncursesw5-dev
libreadline5-dev
libssl-dev
libgdbm-dev
libc6-dev

安装 Python

tar xf Python-3.3.2.tar.xz
./configure
make
sudo make all install
9

如果你是从源代码安装的,那么你需要安装sqlite3的开发库。

sudo apt-get install libsqlite3-dev

你可能还想安装 libreadline-devlibssl-dev

撰写回答