2010-08-02 7 views
7

J'ai décidé de jouer un peu avec Django (puisque j'en ai tellement entendu parler). Je marche à travers le tutoriel ici:problèmes lors de la configuration de Django - ValueError: Empty Nom du module

http://docs.djangoproject.com/en/1.2/intro/tutorial01/#intro-tutorial01

à mi-chemin à travers le tutoriel, je suis invité à exécuter ce de ma ligne de commande:

python manage.py syncdb

Cependant , je reçois cette erreur:

C:\django-projects\mysite>python manage.py syncdb 
Traceback (most recent call last): 
    File "manage.py", line 11, in <module> 
    execute_manager(settings) 
    File "C:\Python25\lib\site-packages\django\core\management\__init__.py", line 438, in execute_manager 
    utility.execute() 
    File "C:\Python25\lib\site-packages\django\core\management\__init__.py", line 379, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "C:\Python25\lib\site-packages\django\core\management\__init__.py", line 257, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "C:\Python25\lib\site-packages\django\core\management\__init__.py", line 67, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "C:\Python25\lib\site-packages\django\utils\importlib.py", line 35, in import_module 
    __import__(name) 
    File "C:\Python25\lib\site-packages\django\core\management\commands\syncdb.py", line 7, in <module> 
    from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal 
    File "C:\Python25\lib\site-packages\django\core\management\sql.py", line 5, in <module> 
    from django.contrib.contenttypes import generic 
    File "C:\Python25\lib\site-packages\django\contrib\contenttypes\generic.py", line 6, in <module> 
    from django.db import connection 
    File "C:\Python25\lib\site-packages\django\db\__init__.py", line 75, in <module> 
    connection = connections[DEFAULT_DB_ALIAS] 
    File "C:\Python25\lib\site-packages\django\db\utils.py", line 91, in __getitem__ 
    backend = load_backend(db['ENGINE']) 
    File "C:\Python25\lib\site-packages\django\db\utils.py", line 32, in load_backend 
    return import_module('.base', backend_name) 
    File "C:\Python25\lib\site-packages\django\utils\importlib.py", line 35, in import_module 
    __import__(name) 
ValueError: Empty module name 

ici est la partie pertinente de mon setup.py

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.sqlite3.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
     'NAME': 'c:/python25/ramysDB',      # 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. 
    } 
} 
+3

Retirez la dernière période si un moteur « django.db.backends.sqlite3 ». J'espère que cela fonctionne pour vous. – Ricky

+0

Comme Ricky dit, juste: "Vous pouvez nommer n'importe quoi.J'appelle habituellement le mien 'dev.db' (pas de chemin de fichier) pour le développement local" Cela a fonctionné pour moi – repcax

Répondre

5

Il semblerait que votre base de données ne soit pas correctement configurée. Vérifiez votre settings.py et assurez-vous que vous avez un moteur de base de données valide définie:

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
     'NAME': '',      # 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. 
    } 
} 

Vous voulez probablement django.db.backends.sqlite3? Et définissez un nom pour cela.

Mise à jour:

Vous avez une période supplémentaire dans le moteur. Changez-le en 'django.db.backends.sqlite3'. J'espère que cela pourra aider.

+0

DATABASES = { 'default': { 'ENGINE' : 'django.db.backends.sqlite3.', # Ajouter 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' ou 'oracle'. 'NAME': 'c:/python25/ramysDB', # Ou chemin vers le fichier de base de données si vous utilisez sqlite3. 'USER': '', # Non utilisé avec sqlite3. 'PASSWORD': '', # Non utilisé avec sqlite3. 'HOST': '', # Définir une chaîne vide pour localhost. Non utilisé avec sqlite3. 'PORT': '', # Définir la chaîne vide par défaut. Non utilisé avec sqlite3. } } – Ramy

+0

c'est ma configuration. Voici le bit que je ne reçois pas du tutoriel: "Si vous utilisez SQLite, vous n'avez pas besoin de créer quoi que ce soit à l'avance - le fichier de base de données sera créé automatiquement quand vous en aurez besoin." À quoi doit ressembler le paramètre NAME? devrais-je avoir un chemin vers un fichier ou juste un chemin vers un répertoire comme je l'ai? Quelle serait l'extension de fichier si je mets un nom de fichier là-bas? – Ramy

+0

Vous pouvez tout nommer. Je nomme habituellement le mien 'dev.db' (pas de chemin de fichier) pour le développement local. – Ricky

8

J'ai eu cette erreur en raison d'un nom d'application Django inexistante dans la liste settings.py, qui, dans notre cas, était la chaîne vide:

INSTALLED_APPS = (
... 
'' 
) 

Retrait qu'une ligne a résolu le problème.

0

Ajouter un nom d'application à « INSTALLED_APPS » dans settings.py

Questions connexes