problems setting up Django – ValueError: Empty Module name

Question:

I’ve decided to play around a bit with Django (since I’ve heard so much about it). I’m walking through the tutorial here:

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

about halfway through the tutorial, i’m asked to run this from my command line:

python manage.py syncdb

However, I’m getting this error:

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

here is the relevant part of my 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.
    }
}
Asked By: Ramy

||

Answers:

It looks like you don’t have your database configured right. Check your settings.py and make sure you have a valid database ENGINE defined:

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

You probably want django.db.backends.sqlite3? And set a NAME for it.

Update:

You have an extra period in ENGINE. Change it to ‘django.db.backends.sqlite3’. Hope that helps.

Answered By: Ricky

I got this error because of a non-existent Django app name listed in settings.py, which, in our case, was the empty string:

INSTALLED_APPS = (
...
''
)

Removing that one line solved the problem.

Answered By: elimisteve

Add app name at “INSTALLED_APPS” in settings.py

Answered By: GannyL

Removing an empty string from

INSTALLED_APPS = [
    'blog.apps.BlogConfig',
    'users.apps.UsersConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    '' <-- This one
]

Also worked for me too

Answered By: volfcan
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.