1

Ubuntu 12.10 を使用しており、Django をインストールしています。http://www.djangoproject.comのチュートリアルに従おうとしています。python manage.py syncdbコマンドを実行したところです。以下はトレースバックです。

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/syncdb.py", line 57, in handle_noargs
    cursor = connection.cursor()
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/__init__.py", line 306, in cursor
    cursor = self.make_debug_cursor(self._cursor())
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/sqlite3/base.py", line 288, in _cursor
    self._sqlite_create_connection()
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/sqlite3/base.py", line 257, in _sqlite_create_connection
    raise ImproperlyConfigured("Please fill out the database NAME in the settings module before using the database.")
django.core.exceptions.ImproperlyConfigured: Please fill out the database NAME in the settings module before using the database.

以下は、私の settings.py ファイルからの抜粋です。

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

私は多くのグーグルを行い、NAMEフィールドについては、データベースファイルへの絶対パスを入力するように言われました. データベース ファイルとは何ですか? また、その場所はどこですか? 私は持っていることを知っていsqlite3ます。.dbただし、どこにもファイルが見つかりません。私が見た別のリソースでは、任意のパスを入力するように言われました。私がそれをすると、Cannot open databaseエラーが発生します。どんな助けでも大歓迎です。

4

1 に答える 1

3

DBファイルを作成する場所をdjangoに提供する必要があります-その場所は、実行するユーザー(あなた)が書き込み可能である必要があります。./manage.py syncdb

たとえば、次のように使用できます。

'NAME': '~/my_test_db.db',

開発では、settings.pyファイルに相対的な場所を使用するのが一般的です。

from os import path

SETTINGS_ROOT = path.dirname(path.realpath(__file__)) # Folder where settings.py is
PROJECT_ROOT = path.normpath(path.join(SETTINGS_ROOT, '..')) # Django 1.4 project structure

...

    'NAME': path.join(PROJECT_ROOT, 'project.db'),

ちなみに、設定ファイルにタイプミスがあるようです:

'ENGINE': 'django.db.backends.sqlite3', 'sqlite3'

読む必要があります:

'ENGINE': 'django.db.backends.sqlite3','
于 2013-01-09T16:34:40.527 に答える