Python 3.2:无法导入sqlite3模块。

7

我刚刚在Ubuntu 10.04.3上安装了Python 3.2.2(按照自述文件中的所有说明进行),并尝试导入sqlite3模块-结果如下:

No module named _sqlite3

我查看了lib-dynload目录,发现_sqlite3.so文件不存在(但在Python 2.6中存在)。

如何解决这个问题?

谢谢!


Python 3 的 SQLite 可能有不同的包。Python 2 和 Python 3 库是不兼容的。 - Mikko Ohtamaa
只是为了澄清 - 你编译源代码而不是从代码仓库拉取它? - Makoto
安装过程:1)./configure 2)make 3)make test 4)sudo make install - Vitalii Ponomar
4个回答

9
如果您是从源代码进行安装的话,您需要安装sqlite3的开发库。
sudo apt-get install libsqlite3-dev

你可能还需要安装libreadline-devlibssl-dev

1
安装Python后我可以这样做吗?还是需要重新安装? - Vitalii Ponomar
2
你需要进入源目录并重新运行make和make install。 - casevh
1
@LennartRegebro:在这种情况下,在从源代码编译Python之前,需要安装sqlite3(以及其他模块,如readline、ssl等)的开发库。 Python sqlite模块的C源代码包含在Python的源代码中; 但是,它需要sqlite3的开发文件才能编译。 它不是单独的库,而是Python的一部分。 - casevh
@casevh:你说得对,我没有仔细阅读就回答了错误的问题。 :-) - Lennart Regebro

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

1

我的Python3.4.1在使用SQLAlchemy库时,在Ubuntu 12.04上出现了相同的问题。原因是像其他人提到的那样,我在编译和安装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
>>>

0

sqlite3不是“python”软件包的一部分,您可以从端口安装它:databases/py-sqlite3。由于该端口没有特定的python3版本,您需要在构建之前设置PYTHON_VERSION=python3.5。2.x和3.x版本的软件包可以和平共存。

make -C /usr/ports/databases/py-sqlite3 PYTHON_VERSION=3.5 install


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接