2010-06-01 2 views
5

je travaille dans le tutoriel Django et recevoir l'erreur suivante lorsque je lance le python initial manage.py syncdb:tutoriel Django dit que je ne l'ai pas mis DATABASE_ENGINE encore ... la mise mais j'ai

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. 

Mon settings.py ressemble:

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

Je devine que c'est quelque chose de simple, mais pourquoi est-ce pas voir les réglage du moteur?

Répondre

13

Il semble que vous utilisiez une version antérieure de Django. Cette façon de configurer la configuration de la base de données vient de Django 1.2, mais l'erreur que vous obtenez vient de 1.1. Si vous utilisez la version 1.1, utilisez this version of the tutorial.

+0

Merci, cela semble définitivement être le problème. Question de suivi: J'ai créé un virtualenvwrapper en utilisant --no-site-wrappers puis j'ai installé Django. Il semble que j'ai Django 1.2.1 dans virtualenvwrapper, mais Django 1.1.1 dans mes paquets de site global. Savez-vous pourquoi ce fichier settings.py fait référence au package de site global et non à celui installé dans virtualenv? – Joe

+0

Eh bien, c'est en fait 'manage.py' qui fait référence à la version globale plutôt qu'à la version virtualenv - les paramètres sont corrects pour la version que vous avez dans virtualenv (1.2). Question stupide: avez-vous activé le virtualenv? –

+0

Toujours la peine de poser des questions idiotes car il est très possible que je n'ai pas. J'ai juste essayé encore (virtualenv activé) et suis maintenant à une erreur différente: django.core.exceptions.ImproperlyConfigured: Erreur de chargement du module MySQLdb: Aucun module nommé MySQLdb - En tant que nouveau venu sur Stackoverflow, je devine que je devrais poster ceci séparément ? Merci de votre aide. – Joe

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

et vous devrez définir un utilisateur et un mot de passe.

-3

À l'invite de commande, vous devez écrire:

edit settings.py 

alors il y aura un nouveau module pour éditer votre

settings.py 
1

Même problème est arrivé souvent à moi et à chaque fois que le problème était dépendances cycliques entre sttings.py et un autre module.

Questions connexes