我在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
>>>
如何解决此问题?
答案 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)
我面临同样的问题。 要解决的步骤。