2010-06-01 61 views
5

我通過Django的教程工作,並收到以下錯誤,當我運行初始蟒蛇manage.py執行syncdb:Django的教程說我沒有設置DATABASE_ENGINE設置尚未...但我有

Traceback (most recent call last): 
File "manage.py", line 11, in <module> 
    execute_manager(settings) 
File "/Library/Python/2.6/site-packages/django/core/management/__init__.py", line 362 in execute_manager 
    utility.execute() 
File "/Library/Python/2.6/site-packages/django/core/management/__init__.py", line 303, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 195, in run_from_argv 
    self.execute(*args, **options.__dict__) 
File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 222, in execute 
    output = self.handle(*args, **options) 
File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 351, in handle 
    return self.handle_noargs(**options) 
File "/Library/Python/2.6/site-packages/django/core/management/commands/syncdb.py", line 49, in handle_noargs 
    cursor = connection.cursor() 
File "/Library/Python/2.6/site-packages/django/db/backends/dummy/base.py", line 15, in complain 
    raise ImproperlyConfigured, "You haven't set the DATABASE_ENGINE setting yet." 
django.core.exceptions.ImproperlyConfigured: You haven't set the DATABASE_ENGINE setting yet. 

我的settings.py樣子:

DATABASES = { 
    'default': { 
    'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
    'NAME': 'dj_tut',      # Or path to database file if using sqlite3. 
    'USER': '',      # Not used with sqlite3. 
    'PASSWORD': '',     # Not used with sqlite3. 
    'HOST': '',      # Set to empty string for localhost. Not used with sqlite3. 
    'PORT': '',      # Set to empty string for default. Not used with sqlite3. 
    } 
} 

我猜這是簡單的東西,但爲什麼沒有看到發動機設置?

回答

13

它看起來像你使用的是早期版本的Django。這種設置數據庫配置的方式來自Django 1.2,但是你得到的錯誤是來自1.1。如果您使用1.1版,請使用this version of the tutorial

+0

謝謝,這絕對是問題所在。後續問題:我使用--no-site-wrappers創建了virtualenvwrapper,然後安裝了Django。看來我在virtualenvwrapper中有Django 1.2.1,但在我的全球站點包中有Django 1.1.1。你知道爲什麼這個settings.py文件會指向全局站點包,而不是在virtualenv中安裝的嗎? – Joe 2010-06-01 16:09:19

+0

那麼,它實際上是'manage.py',它指的是全局版本而不是virtualenv - 這個設置適合你在virtualenv(1.2)中使用的版本。愚蠢的問題:你有沒有激活virtualenv? – 2010-06-01 16:27:36

+0

總是值得問這些愚蠢的問題,因爲我很可能沒有。我只是再試一次(virtualenv激活),現在關閉到一個不同的錯誤:django.core.exceptions.ImproperlyConfigured:加載MySQLdb模塊時出錯:沒有模塊名爲MySQLdb - 作爲一個新手到Stackoverflow,我猜我應該單獨發佈這個?謝謝你的幫助。 – Joe 2010-06-01 16:36:38

2
'ENGINE': 'mysql', 
'NAME': 'dj_tut', 

並且您將要設置用戶和密碼。

-3

在命令提示符下,你應該寫:

edit settings.py 

那麼就會有一個新的模塊編輯

settings.py 
1

同樣的問題經常發生在我身上,每次的問題是循環依賴在sttings.py和另一個模塊之間。