如何让Python看到sqlite?

时间:2009-09-26 13:39:24

标签: python sqlite pysqlite

我不能使用sqlite3(构建python包),因为缺少_sqlite3.so文件。我发现人们遇到了同样的问题,他们解决了这个问题here。要解决我的问题,我必须“安装sqlite3并重新编译Python”。我还发现问题可以通过“从源代码构建并将库移动到/usr/lib/python2.5/lib-dynload/”来解决。

正如我在这里被告知的那样,我必须从源代码安装sqlite并将新编译的文件复制到我的Python目录(没有人说过“重新编译Python”)。好吧,我已经安装了sqlite,现在我必须将一些内容复制到我的/lib-dynload/目录。

我不确定我应该复制什么。在我的/lib-dynload/目录中,我只有.so文件。在我的sqlite-3.6.18中,我没有任何*.so个文件(这让我很怀疑)。我遇到了这个问题,因为_sqlite3.so中没有/lib-dynload/个文件。通过编译sqlite我得到了一些新文件(例如sqlite3.osqlite3.lo)但not _sqlite3.so

P.S。一些细节:
1。我使用Python 2.6.2(我在本地安装)。
2。我没有root权限。
3。我已经通过root在机器上全局安装了sqlite。
4。我刚在本地安装了sqlite。
5。我的操作系统是CentOS版本5.3(最终版)。
6。当我输入Python命令行import sqlite3时,我得到:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/loctopu/opt/lib/python2.6/sqlite3/__init__.py", line 24, in <module>
    from dbapi2 import *
  File "/home/loctopu/opt/lib/python2.6/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: No module named _sqlite3

1 个答案:

答案 0 :(得分:0)

我没有确切的答案,但这里的提示很少

  • 要从源代码安装python,您不需要是root用户,可以随时在/home/USERNAME/usr安装,例如在配置时,请执行./configure --prefix=/home/USERNAME/usr

  • 安装sqlite二进制文件并不意味着它包含了python扩展(相反,编译python时需要sqlite dev文件)

  • sqlite3的正确导入用法为import sqlite3