2012-09-24 46 views
0

由于缺乏sqlite而无法运行django?事实上,sqlite已经安装在我的系统中。有什么不对,为什么python manage.py runserver失败?

(py1)[[email protected] ci]$ python manage.py runserver 
Validating models... 

Unhandled exception in thread started by <bound method Command.inner_run of <django.contrib.staticfiles.management.commands.runserver.Command object at 0x9ea3d8c>> 
Traceback (most recent call last): 
    File "/home/mirror/build/py1/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 91, in inner_run 
    self.validate(display_num_errors=True) 
    File "/home/mirror/build/py1/lib/python2.7/site-packages/django/core/management/base.py", line 266, in validate 
    num_errors = get_validation_errors(s, app) 
    File "/home/mirror/build/py1/lib/python2.7/site-packages/django/core/management/validation.py", line 23, in get_validation_errors 
    from django.db import models, connection 
    File "/home/mirror/build/py1/lib/python2.7/site-packages/django/db/__init__.py", line 40, in <module> 
    backend = load_backend(connection.settings_dict['ENGINE']) 
    File "/home/mirror/build/py1/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__ 
    return getattr(connections[DEFAULT_DB_ALIAS], item) 
    File "/home/mirror/build/py1/lib/python2.7/site-packages/django/db/utils.py", line 92, in __getitem__ 
    backend = load_backend(db['ENGINE']) 
    File "/home/mirror/build/py1/lib/python2.7/site-packages/django/db/utils.py", line 24, in load_backend 
    return import_module('.base', backend_name) 
    File "/home/mirror/build/py1/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/home/mirror/build/py1/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py", line 31, in <module> 
    raise ImproperlyConfigured("Error loading either pysqlite2 or sqlite3 modules (tried in that order): %s" % exc) 
django.core.exceptions.ImproperlyConfigured: **Error loading either pysqlite2 or sqlite3 modules** (tried in that order): No module named _sqlite3 

的焦点是:错误加载要么pysqlite2或sqlite3的模块

证据表明,SQLite是已经安装

(py1)[[email protected] ci]$ rpm -qa | grep sqlite 
python-sqlite-1.1.7-1.2.1 
sqlite-devel-3.3.6-5 
sqlite-3.3.6-5 
(py1)[[email protected] ci]$ python -V 
Python 2.7.3 
(py1)[[email protected] ci]$ python manage.py runserver 

那么,为什么蟒蛇manage.py runserver命令失败?

编辑1

现在我知道,我还没有建立源码modue:

(py1)[[email protected] Python-2.7.3]$ python 
Python 2.7.3 (default, Sep 23 2012, 21:42:51) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-52)] 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 "/home/mirror/insp/lib/python2.7/sqlite3/__init__.py", line 24, in <module> 
    from dbapi2 import * 
    File "/home/mirror/insp/lib/python2.7/sqlite3/dbapi2.py", line 27, in <module> 
    from _sqlite3 import * 
ImportError: No module named _sqlite3 

我觉得SQLite的代码是由Python源代码在内,但如何建立呢?

[[email protected] Python-2.7.3]$ ls Modules/_s 
_sqlite/ _sre.c  _sre.o  _ssl.c  _struct.c 
(py1)[[email protected] Python-2.7.3]$ ls Modules/_sqlite/ 
cache.c  connection.h microprotocols.c module.h   row.c   statement.c util.h 
cache.h  cursor.c  microprotocols.h prepare_protocol.c row.h   statement.h 
connection.c cursor.h  module.c   prepare_protocol.h sqlitecompat.h util.c 

./configure --help | grep的源码没有返回....

(py1)[[email protected] Python-2.7.3]$ ./configure --help | grep sqlite 
(py1)[[email protected] Python-2.7.3]$ 
+4

它的安装证据是能够从python交互式shell导入pysqlite2或import sqlite3(推测是后者)。你能做到吗? –

+0

请提供您的设置文件的数据库部分 – schacki

+0

@LarryLustig好吧,我还没有建立sqlite模块,那么如何构建它呢? – hugemeow

回答

0

您需要的apt-get安装libsqlite3-DEV(在Debian - sqlite的-devel的可能还有别的地方),并重新编译蟒蛇。

+0

如何构建python的sqlite扩展? – hugemeow

0

我认为你的问题在这里回答:Django - No module named _sqlite3

这主要是人谁涉及到从谷歌这个问题。

我亲自解决了这个在Mac OSX小牛通过安装pysqlite:

pip install pysqlite 

。希望为别人工作。