1. ホーム
  2. パイソン

ImproperlyConfiguredです。INSTALLED_APPSの設定を要求されましたが、設定が... 問題

2022-02-21 19:17:50
<パス

エラー報告に関する説明

pycarm を使って django アプリケーションを開発し、django コンソールでテストせず、ターミナルやフォルダに直接アプリケーションを記述してデータベースとやりとりすると、以下のようなエラーが発生します。

Traceback (most recent call last):
  File "E:/Users/Administrator/PycharmProjects/MyDjango/user_defined/wordsSplitTest.py", line 11, in <module>
    from index.models import DgaCount
  File "E:\Users\Administrator\PycharmProjects\MyDjango\index\models.py", line 12, in <module>
    class DgaProject(models.Model):
  File "E:\Users\Administrator\Anaconda3\envs\test3.6\lib\site-packages\django\db\models\base.py", line 87, in __new__
    app_config = apps.get_containing_app_config(module)
  File "E:\Users\Administrator\Anaconda3\envs\test3.6\lib\site-packages\django\apps\registry.py", line 249, in get_containing_ app_config
    self.check_apps_ready()
  File "E:\Users\Administrator\Anaconda3\envs\test3.6\lib\site-packages\django\apps\registry.py", line 131, in check_apps_ready
    settings.INSTALLED_APPS
  File "E:\Users\Administrator\Anaconda3\envs\test3.6\lib\site-packages\django\conf\__init__.py", line 57, in __getattr__
    self._setup(name)
  File "E:\Users\Administrator\Anaconda3\envs\test3.6\lib\site-packages\django\conf\__init__.py", line 42, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.



エラー解析

  • まず自分のソースコードを見てみましょう。

このコードは、データベースの'dgaSum'カラムにあるすべてのデータの合計を数えようとしています。

from django.db.models import Sum

import os
from index.models import DgaCount
def main():
    d = DgaCount. dgaSum = DgaCount.objects.aggregate(Sum('dgaSum'))
    print(d)

if __name__ == '__main__':
    main()


  • 上記のようなエラーはなぜ発生するのですか?

modlesを導入した際、アプリケーションがデータベースアプリケーションを認識しなかったことが原因でした。設定ファイルにデータベースアプリケーションを追加したものの、アプリケーションがmodelsのファイルを探す場所を知るために、環境変数を設定するための設定文をファイルの先頭に2行追加する必要がありました。

解決策

1

ファイルヘッダに環境変数を設定する文を追加します。予測できないエラーや混乱を避けるため、追加順序に特に重点を置いてください。

from django.db.models import Sum

import os
import django
os.environ.setdefault('DJANGO_SETTING_MODULE', 'MyDjango.settings')
django.setup()
from index.models import DgaCount
def main():
    d = DgaCount.dgaSum = DgaCount.objects.aggregate(Sum('dgaSum'))
    print(d)

if __name__ == '__main__':
    main()


この時点で、エラーメッセージが変更されていることがわかります。

File "E:\Users\Administrator\Anaconda3\envs\test3.6\lib\site-packages\django\conf\__init__.py", line 42, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
ImproperlyConfigured: Requested setting LOGGING_CONFIG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.



2

pycharmのpythonの設定に追加します。

環境変数の欄に、以下の情報を追加します。

このまま実行してください!完璧な解決策です。

**注意:** 画像でマークしたファイルディレクトリ情報をよく見て、自分の状況に合うように変更すれば、修正にかかる時間は最短で済みます。

この記事は、以下を大いに参考にさせていただきました。 PyCharmでdjangoのプログラムを実行する 先ほどの方法では解決できないことがわかったので、本家ブロガーさんの方法を少し変更して解決し、さらに細かいアレンジを加えてみました。これを教えてくれたブロガーに感謝したい。