【Django】django.core.exceptions.ImproperlyConfigured: The INSTALLED_APPS setting must be a list or a tuple.

【Django】django.core.exceptions.ImproperlyConfigured: The INSTALLED_APPS setting must be a list or a tuple.

【Django】django.core.exceptions.ImproperlyConfigured: The INSTALLED_APPS setting must be a list or a tuple.

先だってのDockerの問題解決の為、先にちゃんと動くDjangoプロジェクトを用意しようと動き出しました。
「まずは簡単な会員ログイン程度を用意して…」なんて思っていたのですが、開発サーバーRUNで思わぬ事態。

  1. NameError: name ‘os’ is not defined
  2. django.core.exceptions.ImproperlyConfigured: The INSTALLED_APPS setting must be a list or a tuple.

1つ目はOSってコマンドが無いんだなとすぐわかったのですが、2つ目が謎でした。
と言う事で、Djangoの初期設定について上手くいかなかったこの2点をまとめます。

ちなみに、私の環境はこんな感じです。

  • Windows10 64Bit
  • Python3.8 ※Windows開発アプリからインストール
  • プロジェクト:django-admin startproject プロジェクト名 で作成

エラー:NameError: name ‘os’ is not defined

この解決は超簡単です。

プロジェクト名\プロジェクト名\settings.py の最初に【import os】を書き加える

書き加えるとこんな感じになります。

たったこれだけで解決。
全部こんな感じだったらうれしかったのですが、私にとっては2つ目のエラーが難問でした。

The INSTALLED_APPS setting must be a list or a tuple.

直訳すれば【INSTALLED_APPS の設定はリストかタプルでなければなりません。】

プロジェクト名\プロジェクト名\settings.py のINSTALLED_APPSには次のように記載されています。

Loginと言うアプリを作成してsettings.pyに登録したと言う場所。
エラーメッセージからここに問題があるのは理解できるけど、何が悪いのかが解らない。
ちなみに、書き加える前の状態は下の姿でした。

で、やっとわかった正解は下の姿。

【 { } 】で囲われている事が問題だったようです。

自動生成されたらそれが正しいと思うじゃんか!
そりゃね、正しいと思い込んでそこに注意行かないって!
Project作成の初期値で変えてほしかった…。

リスト型 or タプル型として判断してもらえる書き方

■ ()内にカンマ区切りでリストを配置する※最後のカンマを忘れない事

■ []内にリストを配置する※複数ある場合はカンマ区切り

こんな書き方はNGとの事です。

この現象が起こるのはWindowsPCだけ?

Docker構成時に仮ページ作成のため【django-admin startproject プロジェクト名 】でプロジェクト作りました。

こちらは 【[ ] (角カッコ)】で囲われてました。

まとめ

まさか自動生成のパーツに問題があるとは思いませんでした。
「こんな事もあるんだなぁ」といい勉強になりました。