代码之家  ›  专栏  ›  技术社区  ›  Ramy

设置Django时出现问题-ValueError:空模块名

  •  7
  • Ramy  · 技术社区  · 15 年前

    我决定和Django玩一玩(因为我听过很多关于它的事)。我在这里浏览教程:

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

    教程进行到一半时,我被要求从命令行运行以下命令:

    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
    

    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 回复  |  直到 15 年前
        1
  •  6
  •   Ricky    15 年前

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

    你可能想要 django.db.backends.sqlite3 ? 给它起个名字。

    你的引擎还有一段时间。将其更改为“django.db.backends.sqlite3”。希望有帮助。

        2
  •  13
  •   elimisteve    13 年前

    我之所以出现此错误,是因为settings.py中列出了一个不存在的Django应用程序名称,在本例中,该名称是空字符串:

    INSTALLED_APPS = (
    ...
    ''
    )
    

    去掉那一行就解决了问题。

        3
  •  0
  •   GannyL    7 年前

    在settings.py的“INSTALLED\u APPS”中添加应用程序名称