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のプログラムを実行する 先ほどの方法では解決できないことがわかったので、本家ブロガーさんの方法を少し変更して解決し、さらに細かいアレンジを加えてみました。これを教えてくれたブロガーに感謝したい。
関連
-
チェックされていないruntime.lastError: 接続を確立できませんでした。受信側が存在しません。
-
解決済みお客様のCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
ERROR: 要件ファイルを開くことができませんでした。[Errno 2] そのようなファイルまたはディレクトリがありません: 'requirements.txt'.
-
Python pipを使ったpymysqlモジュールのインストール (Error: ImportError: No module named pymysql)
-
ModuleNotFoundError: Pythonソリューションに'scipy'という名前のモジュールがありません。
-
メール送信を自動化するPython - Blog内のメッセージのメールアドレスを自動で取得して送信
-
ValueErrorです。変数 `x` と `y` のどちらも数値でないように見えます。
-
パイソン-ユニコード
-
numpyのconcatenate関数
-
AttributeError: 'dict' オブジェクトには 'iteritems' という属性がありません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Abort trap: 6エラーに対するPythonの解決策
-
AttributeError: モジュール 'tensorflow' には 'enable_eager_execution' という属性がない。
-
Python|ModuleNotFoundErrorを解決する。utils' という名前のモジュールがありません。
-
python3.x: urllib2' という名前のモジュールがない
-
python 3.3.2 エラー。urllib2' という名前のモジュールがない ソリューション
-
Python OSError: [Errno 22] 無効な引数: solution
-
Python ランタイムエラー, raise notImplementedError
-
Python Djangoプロジェクトログクエリシステム
-
TypeError: write() の引数はバイトではなく str でなければならない Python3 でバイナリファイルを書き込む方法とエラーの原因
-
ValueError: 連結軸を除くすべての入力配列の次元が正確に一致する必要があります。