2012-09-24 52 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 

。希望爲別人工作。