没有名为 _sqlite3 的模块
我正在我的一台运行着Django应用的VPS上,使用的是Debian 5。当我运行一个示例应用时,出现了这个错误:
File "/usr/local/lib/python2.5/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/usr/local/lib/python2.5/site-packages/django/db/backends/sqlite3/base.py", line 30, in <module>
raise ImproperlyConfigured, "Error loading %s: %s" % (module, exc)
ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3
查看Python的安装情况,显示同样的错误:
Python 2.5.2 (r252:60911, May 12 2009, 07:46:31)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.5/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/usr/local/lib/python2.5/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named _sqlite3
>>>
在网上查了一下,我了解到Python 2.5应该自带所有必要的SQLite封装。那么,我需要重新安装Python吗?还是有其他方法可以让这个模块正常工作?
29 个回答
87
我也遇到过同样的问题(在Ubuntu Lucid上从源代码编译python2.5
),当我尝试import sqlite3
时也出现了同样的错误。我从软件包管理器安装了libsqlite3-dev
,然后重新编译了python2.5,这样导入就成功了。
279
看起来你的makefile没有包含合适的.so
文件。你可以按照下面的步骤来解决这个问题:
- 安装
sqlite-devel
(在一些基于Debian的系统上是libsqlite3-dev
) - 重新配置并编译Python,使用命令
./configure --enable-loadable-sqlite-extensions && make && sudo make install
注意
这里的sudo make install
命令会把这个Python版本设置为系统的标准版本,这可能会带来一些意想不到的后果。如果你在自己的工作站上运行这个命令,可能希望它和现有的Python版本并存,这可以通过使用sudo make altinstall
来实现。