我想在Python和sqlite之间建立接口。两者都安装在机器上。我有一个旧版本的Python(2.4.3)。因此,默认情况下不包含pysqlite。首先,我尝试通过安装pysqlite来解决此问题,但在该方向上没有成功。解决该问题的第二次尝试是安装新版本的Python。我没有计算机的超级用户权限。因此,我在本地安装了它。 Python的新版本是(2.6.2)。据我所知,该版本默认情况下应包含pysqlite(现在它被称为“ sqlite3”,而不是像以前一样的“ pysqlite2”)。

但是,如果我键入:

from sqlite3 import *


我得到:

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


必须注意,以上错误消息与我键入“ from blablabla import *”时得到的错误消息不同:


  追溯(最近一次通话):
  文件“”,第1行,位于
  ImportError:没有名为blablabla的模块


因此,python看到了与pysqlite相关的东西,但仍然存在一些问题。有人可以帮我解决这个问题吗?

附言
我使用CentOS 5.3版(最终版)。

最佳答案

在Windows上,_sqlite3.pyd驻留在C:\Python26\DLLs中。在* nix上,它应位于类似于/usr/lib/python2.6/lib-dynload/_sqlite3.so的路径下。可能是您缺少该共享库,或者您的PYTHONPATH设置不正确。

因为您说过您不是以超级用户身份安装的,所以它可能是格式错误的路径。您可以通过执行以下操作手动让Python搜索_sqlite3.so的路径

import sys
sys.path.append("/path/to/my/libs")


但是首选的方法可能是更改您的PYTHONPATH或其他登录文件中的.bashrc

10-07 21:35