web-dev-qa-db-ja.com

django.core.exceptions.ImproperlyConfigured:USE_I18Nの設定を要求しましたが、設定は構成されていません

MySQLデータベースをDjangoプロジェクトに接続したいのですが、エラーが発生しています:

「Django.core.exceptions.ImproperlyConfigured:USE_I18Nの設定を要求しましたが、設定は構成されていません。環境変数Django_SETTINGS_MODULEを定義するか、設定にアクセスする前にsettings.configure()を呼び出す必要があります。」

トレース:

 (myenv) LIBINGLADWINs-MacBook-Air:libinrenold$ Django-admin dbshell
Traceback (most recent call last):
  File "/Users/libinrenold/Desktop/djangoworks/myenv/bin/Django-admin", line 11, in <module>
    sys.exit(execute_from_command_line())
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/core/management/base.py", line 283, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/core/management/base.py", line 322, in execute
    saved_locale = translation.get_language()
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/utils/translation/__init__.py", line 195, in get_language
    return _trans.get_language()
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/utils/translation/__init__.py", line 59, in __getattr__
    if settings.USE_I18N:
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/conf/__init__.py", line 56, in __getattr__
    self._setup(name)
  File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/Django/conf/__init__.py", line 39, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
Django.core.exceptions.ImproperlyConfigured: Requested setting USE_I18N, but settings are not configured. You must either define the environment variable Django_SETTINGS_MODULE or call settings.configure() before accessing settings.

settings.py

  DATABASES = {
        'default': {
        'ENGINE': 'Django.db.backends.mysql',
        'NAME': 'test',
        'USER': 'user',
        'PASSWORD': 'root',
        'Host':'',
        'PORT': '',
        }
     }
10
reno_libiii

settings.pyファイルが存在する場所を示すために、関連する変数を定義する必要があります。

export Django_SETTINGS_MODULE=mysite.settings

これは関連する docs エントリです:

Djangoを使用するときは、使用している設定を伝える必要があります。これを行うには、環境変数Django_SETTINGS_MODULEを使用します。

Django_SETTINGS_MODULEの値はPythonパス構文、例えばmysite.settingsにあります。設定モジュールはPythonインポート検索パスにあることに注意してください。

virtualenv (ベストプラクティス)を使用している場合、関連するexportコマンドをファイル<path-to-virtualenv>/bin/activateに貼り付けることができます。

10
raratiru

これをsettings.pyの先頭に配置すると、Djangoが設定されます

import os
os.environ.setdefault("Django_SETTINGS_MODULE", __file__)
import Django
django.setup()
4
Naqib Hakimi

Raratiruが回答したように、Django_SETTINGS_MODULE設定ファイルへの相対Pythonパスで定義された環境変数。

または Django-adminコマンドsettingsパラメーター付き:

Django-admin --settings=mysite.settings dbshell
2
ppython

それは私にも起こります。私は今、意図しないことに気づきました。

PyCharmの上にある「構成」を変更しましたIDE実行しようとするとpycharmは混乱しましたDjangoコード。ショートカットでサーバーを実行しようとすると、問題がポップアップしますしかし、サーバーを実行するためにターミナルを使用したとき、Djangoコードに問題はなく、pycharmは設定を見つけることができませんでした。

だから、おそらくあなたは同じ間違いをするかもしれません:)

Djangoが初めてなので、私の答えが愚かだったら落ち着いてください。

configuration picture

2
mehdi