2010-06-01 24 views
5

Tôi đang làm việc thông qua các hướng dẫn Django và nhận được lỗi sau khi tôi chạy ban đầu python manage.py syncdb:Django hướng dẫn nói rằng tôi chưa thiết lập chưa DATABASE_ENGINE ... nhưng tôi có

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. 

Cài đặt của tôi.py trông giống như:

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. 
    } 
} 

Tôi đoán đây là điều đơn giản, nhưng tại sao lại không nhìn thấy cài đặt ENGINE?

Trả lời

13

Dường như bạn đang sử dụng phiên bản cũ hơn của Django. Đó là cách thiết lập cấu hình cơ sở dữ liệu là từ Django 1.2, nhưng lỗi bạn nhận được là từ 1.1. Nếu bạn đang sử dụng phiên bản 1.1, hãy sử dụng this version of the tutorial.

+0

Cảm ơn, điều đó dường như là vấn đề. Câu hỏi tiếp theo: Tôi đã tạo một virtualenvwrapper bằng cách sử dụng --no-site-wrapper và sau đó cài đặt Django. Có vẻ như tôi có Django 1.2.1 trong virtualenvwrapper, nhưng Django 1.1.1 trong các gói trang web toàn cầu của tôi. Bạn có biết tại sao tệp settings.py này sẽ đề cập đến gói trang web toàn cầu và không phải là tệp được cài đặt trong virtualenv không? – Joe

+0

Vâng, đó thực sự là 'manage.py' đang đề cập đến phiên bản toàn cầu thay vì phiên bản ảo - cài đặt phù hợp với phiên bản bạn có bên trong virtualenv (1.2). Câu hỏi ngớ ngẩn: bạn đã kích hoạt virtualenv chưa? –

+0

Luôn luôn đáng hỏi những câu hỏi ngớ ngẩn vì nó là rất có thể là tôi đã không. Tôi chỉ cần thử một lần nữa (virtualenv kích hoạt) và bây giờ tắt đến một lỗi khác nhau: django.core.exceptions.ImproperlyConfigured: Lỗi tải mô-đun MySQLdb: Không có mô-đun tên MySQLdb - Là một người mới đến Stackoverflow, tôi đoán tôi nên đăng bài này một cách riêng biệt ? Cảm ơn bạn đã giúp đỡ. – Joe

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

và bạn sẽ muốn đặt người dùng và mật khẩu.

-3

Tại dấu nhắc lệnh, bạn nên viết:

edit settings.py 

sau đó sẽ có một module mới để chỉnh sửa

settings.py 
1

Cùng một vấn đề của bạn đã xảy ra thường xuyên đối với tôi và mọi vấn đề là phụ thuộc cyclic giữa sttings.py và một mô-đun khác.

Các vấn đề liên quan