2010-08-02 6 views
7

He decidido jugar un poco con Django (ya que he oído mucho sobre él). Estoy caminando a través del tutorial aquí:problemas para configurar Django - ValueError: Empty Nombre del módulo

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

a mitad de camino a través del tutorial, se me pide que ejecute esto desde mi línea de comandos:

python manage.py syncdb

Sin embargo , estoy recibiendo este error:

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 

aquí es la parte pertinente de mi 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

Retire el último período tan motor es 'django.db.backends.sqlite3'. Espero que eso funcione para usted. – Ricky

+0

Como dice Ricky, simplemente: "Puedes nombrar cualquier cosa. Por lo general, nombro el mío 'dev.db' (sin ruta de archivo) para el desarrollo local" Funcionó para mí – repcax

Respuesta

5

Parece que no tiene su base de datos configurada correctamente. Compruebe su settings.py y asegúrese de que tiene un motor de base de datos válida definida:

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

Es posible que desee django.db.backends.sqlite3? Y establece un NOMBRE para eso.

Actualización:

Usted tiene un periodo extra en el motor. Cámbielo a 'django.db.backends.sqlite3'. Espero que ayude.

+0

DATABASES = { 'predeterminado': { 'ENGINE' : 'django.db.backends.sqlite3.', # Agrega 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' u 'oráculo'. 'NAME': 'c:/python25/ramysDB', # O ruta al archivo de base de datos si se usa sqlite3. 'USER': '', # No utilizado con sqlite3. 'CONTRASEÑA': '', # No se usa con sqlite3. 'HOST': '', # Establecer en cadena vacía para localhost. No se usa con sqlite3. 'PORT': '', # Establecer en cadena vacía para el valor predeterminado. No se usa con sqlite3. } } – Ramy

+0

esa es mi configuración. aquí está lo poco que no consigo del tutorial: "Si está usando SQLite, no necesita crear nada de antemano: el archivo de la base de datos se creará automáticamente cuando sea necesario". ¿Cómo debería ser el parámetro NAME? ¿Debo tener una ruta a un archivo o simplemente un camino a un directorio como el que tengo? ¿Cuál sería la extensión del archivo si coloco un nombre de archivo allí? – Ramy

+0

Puedes ponerle un nombre. Usualmente nombre el mío 'dev.db' (sin ruta de archivo) para el desarrollo local. – Ricky

8

Tengo este error debido a un nombre inexistente Django aplicación que aparece en settings.py, que, en nuestro caso, fue la cadena vacía:

INSTALLED_APPS = (
... 
'' 
) 

Extracción de una línea que resolvió el problema.

0

Agregar nombre de la aplicación en "INSTALLED_APPS" en settings.py

Cuestiones relacionadas