无法使用Python 2.6导入SQLite

时间:2008-10-24 12:33:25

标签: python sqlite

我在Unix上运行Python 2.6,当我运行交互式提示时(SQLite应该预先安装)我得到:

[root@idev htdocs]# python
Python 2.6 (r26:66714, Oct 23 2008, 16:25:34)
[GCC 3.2.2 20030222 (Red Hat Linux 3.2.2-5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named sqlite
>>>

如何解决此问题?

8 个答案:

答案 0 :(得分:14)

错误:

ImportError: No module named _sqlite3

表示SQLite 3找不到关联的共享库。在Mac OS X上,它是_sqlite3.so,在其他Unix系统上它应该是相同的。

要解决此错误,您必须在计算机上找到_sqlite3.so库,然后检查PYTHONPATH以查找此目录位置。

要打印Python搜索路径,请在Python shell中输入以下内容:

import sys
print sys.path

如果缺少包含您的库的目录,您可以尝试使用

以交互方式添加它
sys.path.append('/your/dir/here')

并尝试

import sqlite3

一次。如果这样可行,则必须将此目录永久添加到PYTHONPATH环境变量中。

PS:如果缺少库,则应该(重新)安装模块。

答案 1 :(得分:10)

import sqlite3

sqlite3 - SQLite数据库的DB-API 2.0接口。

您缺少.so(共享对象) - 可能是安装步骤。在我的Linux python安装中,_sqlite3位于:

${somewhere}/lib/python2.6/lib-dynload/_sqlite3.so

答案 2 :(得分:10)

Python 2.6检测sqlite3开发头的安装位置,如果不可用,将默默跳过构建_sqlite3。如果要从源代码构建,请安装sqlite3,包括开发头文件。就我而言,sudo yum install sqlite-devel在CentOS 4.7上对此进行了排序。然后,从源代码重建Python。

答案 3 :(得分:1)

试试这个:

from pysqlite2 import dbapi2 as sqlite

答案 4 :(得分:1)

位于我的系统_sqlite3.so

'/usr/lib/python2.6/lib-dynload/_sqlite3.so'

检查目录是否在sys.path

>>> import sys; print(filter(lambda p: 'lib-dynload' in p, sys.path))
['/usr/lib/python2.6/lib-dynload']

答案 5 :(得分:0)

这可以解决您的问题吗?

Python 2.5.4 (r254:67916, May 31 2009, 16:56:01)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named sqlite
>>> import sqlite3
>>>

答案 6 :(得分:0)

2.5.5。 Python 2.5的Mac端口现在有这样的提示:

"py25-sqlite3 @2.5.4 (python, databases)
    This is a stub. sqlite3 is now built with python25"

因此,将python25端口升级到python25 @2.5.5_0会使导入再次起作用。 由于sqlite3是python25的依赖项, 它是在升级python25时重新构建的。 因此,

$ sudo port upgrade python25

在Mac OS X上实现了这一功能,端口集合。

答案 7 :(得分:0)

我面临同样的问题。 要解决的步骤。

  1. 从sqlite网站下载最新的sqlite3。源码-的autoconf *
  2. 通过3个简单步骤安装它
    1. ./配置
    2. 使
    3. make install
  3. 重建python 使 make install