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': '',
}
}
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
に貼り付けることができます。
これをsettings.pyの先頭に配置すると、Djangoが設定されます
import os
os.environ.setdefault("Django_SETTINGS_MODULE", __file__)
import Django
django.setup()
Raratiruが回答したように、Django_SETTINGS_MODULE
設定ファイルへの相対Pythonパスで定義された環境変数。
または Django-admin
コマンドsettings
パラメーター付き:
Django-admin --settings=mysite.settings dbshell
それは私にも起こります。私は今、意図しないことに気づきました。
PyCharmの上にある「構成」を変更しましたIDE実行しようとするとpycharmは混乱しましたDjangoコード。ショートカットでサーバーを実行しようとすると、問題がポップアップしますしかし、サーバーを実行するためにターミナルを使用したとき、Djangoコードに問題はなく、pycharmは設定を見つけることができませんでした。
だから、おそらくあなたは同じ間違いをするかもしれません:)
Djangoが初めてなので、私の答えが愚かだったら落ち着いてください。