2010-06-01 12 views
5

estoy trabajando a través del tutorial de Django y recibir el siguiente mensaje de error cuando ejecuto el syncdb python manage.py inicial:Django tutorial dice que no ha establecido todavía la configuración DATABASE_ENGINE ... pero tengo

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. 

Mi settings.py parece:

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

que supongo que esto es algo simple, pero por qué no es de ver el ajuste del motor?

Respuesta

13

Parece que está utilizando una versión anterior de Django. Esa forma de establecer la configuración de la base de datos es de Django 1.2, pero el error que está obteniendo es de 1.1. Si está utilizando la versión 1.1, use this version of the tutorial.

+0

Gracias, eso definitivamente parece ser el problema. Pregunta de seguimiento: Creé una virtualenvwrapper usando --no-site-wrappers y luego instalé Django. Parece que tengo Django 1.2.1 en virtualenvwrapper, pero Django 1.1.1 en mis paquetes de sitios globales. ¿Sabes por qué este archivo settings.py se estaría refiriendo al paquete del sitio global y no al que está instalado en el virtualenv? – Joe

+0

Bueno, en realidad es el 'manage.py' que se refiere a la versión global en lugar de la versión virtual: la configuración es correcta para la versión que tiene dentro del virtualenv (1.2). Pregunta tonta: ¿Has activado el virtualenv? –

+0

Siempre vale la pena hacer las preguntas tontas, ya que es muy posible que yo no las haya hecho. Lo intenté de nuevo (virtualenv activado) y ahora estoy fuera de un error diferente: django.core.exceptions.ImproperlyConfigured: Error al cargar el módulo MySQLdb: Ningún módulo llamado MySQLdb - Como recién llegado a Stackoverflow, supongo que debo publicar esto por separado ? Gracias por tu ayuda. – Joe

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

y usted querrá establecer un usuario y contraseña.

-3

En el indicador de comandos se debe escribir:

edit settings.py 

entonces habrá un módulo nuevo para la edición de su

settings.py 
1

El mismo problema ocurrió con frecuencia para mí y cada vez que el problema se dependencias cíclicas entre sttings.py y otro módulo.

Cuestiones relacionadas