38

シンプルな django 1.4 プロジェクトを作成し、syncdb を発行して (postgres) db スキーマを作成しようとしています。私はこのエラーが発生しています:-

Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.6/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.6/dist-packages/django/core/management/base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 232, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 371, in handle
return self.handle_noargs(**options)
File "/usr/local/lib/python2.6/dist-packages/django/core/management/commands/syncdb.py", line 57, in handle_noargs
cursor = connection.cursor()
File "/usr/local/lib/python2.6/dist-packages/django/db/backends/dummy/base.py", line 15, in complain
raise ImproperlyConfigured("settings.DATABASES is improperly configured. "
django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured.Please supply the ENGINE value. Check settings documentation for more details.

私のsettings.pyファイルは次のようになります:-

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'test',                      # Or path to database file if using sqlite3.
        'USER': 'test',                      # Not used with sqlite3.
        'PASSWORD': 'test',                  # 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.
     }
}

psql OK を使用してデータベースに接続できます - 何かアイデアはありますか? 前もって感謝します !

4

5 に答える 5

29

django が使用していると思われる settings.py ファイルにアクセスしていない可能性があります。--settings を使用して、明示的に django を設定ファイルに向けてみてください。

./manage.py --settings=nameofproject.settings runserver/syncdb

これが機能する場合は、django が間違った設定ファイルをインポートしている理由を突き止める必要があります。

誤って 1.3 から 1.4 にアップグレードしましたか?

于 2012-04-19T16:10:14.107 に答える
6

プロジェクトには 2 つの「settings.py」ファイルがあります (OS が UNIX 系の場合):

  • 1つは最初のディレクトリにあります
  • 1つはdir / dirにあります

2 番目 ( ) に ENGINE を記述する必要がありますdir/dir/setting.py

幸運を!

于 2013-01-27T13:01:13.660 に答える
3

どのsettings.pyファイルを更新しましたか?Djangoの1.3から1.4への変更について読んでいなかったときも、最初はまったく同じ問題が発生しました。これにより、二重インポートが発生します。これはhttps://docs.djangoproject.com/en/1.4/releases/1.4/#updated-default-project-layout-and-manage-pyからの抜粋 です。最新バージョンのDjango(現在は1.4.2)には、startproject管理コマンド用に更新されたデフォルトのプロジェクトレイアウトとmanage.pyファイルが付属しており、デフォルトのプロジェクトレイアウトが変更されています。

エラーを修正するには、使用する必要のある正しいsettings.pyファイルは、メインプロジェクトディレクトリ内のファイルではなく、プロジェクトディレクトリ内に作成されたディレクトリ内のファイル(同じ名前)です。

于 2012-11-16T10:30:53.573 に答える
0

次のリンクで提案されているように、Djangoを再インストールすることで(実際にはeggファイルを削除する)トリックができました。 https://code.djangoproject.com/ticket/18058 1.3から1.4にアップグレードすると、これらの問題の多くが発生するようです。

于 2013-03-14T01:29:33.740 に答える