无法在Python 2.6中导入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 个回答
10
Python 2.6 会检查你的电脑上是否安装了 sqlite3 的开发头文件,如果没有找到,它会默默地跳过 _sqlite3 的构建。如果你是从源代码安装的,记得要安装 sqlite3 以及它的开发头文件。在我的情况下,使用 sudo yum install sqlite-devel
命令在 CentOS 4.7 上解决了这个问题。然后,再从源代码重新构建 Python。
10
import sqlite3
sqlite3 - 这是一个用于SQLite数据库的DB-API 2.0接口。
你缺少了 .so
(共享对象文件) - 这可能是安装步骤没有完成。在我的Linux系统的Python安装中, _sqlite3
文件的位置是:
${somewhere}/lib/python2.6/lib-dynload/_sqlite3.so
14
这个错误:
ImportError: No module named _sqlite3
意味着 SQLite 3 找不到相关的共享库。在 Mac OS X 系统上,这个库叫做 _sqlite3.so,其他 Unix 系统上应该也是一样的。
要解决这个错误,你需要在你的电脑上找到 _sqlite3.so 这个库,然后检查一下你的 PYTHONPATH 里有没有这个库所在的目录。
要查看 Python 的搜索路径,可以在 Python 的命令行中输入以下内容:
import sys
print sys.path
如果你发现包含这个库的目录不在里面,你可以尝试用
sys.path.append('/your/dir/here')
来临时添加这个目录,然后再试一次
import sqlite3
。如果这样可以成功,你就需要把这个目录永久添加到你的 PYTHONPATH 环境变量里。
补充:如果这个库缺失,你应该重新安装这个模块。