質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

12210閲覧

ModuleNotFoundError: No module named 'django_app.settings'と表示されてしまう。

sorara

総合スコア17

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/04/18 15:02

編集2020/04/19 13:56

イメージ説明
イメージ説明
イメージ説明
イメージ説明
イメージ説明
イメージ説明
イメージ説明
イメージ説明

イメージ説明
イメージ説明
件名のとおり、settingsがないとコマンドプロンプトにエラーが表示されてしまいます。
プロジェクト名はdjango_appでアプリ名はhelloです。
いろいろ実験するために、もともときちんとできていたhelloアプリをバックアップとしてコピーして保存しておりました。
そして、実験が終わったので、コピーしておいたものに置換をしたら、python manage.py runserverをすると、コマンドプロンプトにこのようなエラーが表示されるようになってしまいました。
django_app/settings.pyのINSTALLED_APPSにはきちんと'hello'というアプリを追加しております。なぜないとエラーがでてしまうのか困っています。
settings.pyは下記の通りです。↓

""" Django settings for django_app project. Generated by 'django-admin startproject' using Django 3.0.5. For more information on this file, see https://docs.djangoproject.com/en/3.0/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/3.0/ref/settings/ """ import os # Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'wpp#hh@#n2yr=+nd88ps#g^iqa&w*s-nfz(ds^qvz9vuhl@)@$' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'hello', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'django_app.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ] WSGI_APPLICATION = 'django_app.wsgi.application' # Database # https://docs.djangoproject.com/en/3.0/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } # Password validation # https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', }, { 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', }, { 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', }, { 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', }, ] # Internationalization # https://docs.djangoproject.com/en/3.0/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/3.0/howto/static-files/ STATIC_URL = '/static/'

プロジェクト、アプリケーションの構造は下記の通りです。↓

django_app manage.py db.sqlite3  django_app __init__.py __pycache__ asgi.py settings.py urls.py wsgi.py db.aqlite3 hello __init__.py __pycache__ admin.py static templates migrations models.py testes.py views.py urls.py

です。

いつも、へんなミスばかりで申し訳ございません。
頑張っているのですが、今回もわからず。。。
お手数ですが、教えていただければと思います。
宜しくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

llr114

2020/04/18 19:24

エラー文の全文を教えていただいてもよろしいでしょうか?
sorara

2020/04/19 08:59

エラー全文を編集で質問に何回も貼り付けてみたのですが、文章が10000文字を超えるようで全文を貼り付けることができませんでした(;;)
guest

回答1

0

ベストアンサー

エラーについて

ModuleNotFoundError: No module named 'django_app.settings'というエラーは、設定ファイルの位置が正しく設定されていない/名前が間違っている際に起こるエラーです。

恐らくルートディレクトリに以下の記述があるmanage.pyというファイルがあります。

python

1#!/usr/bin/env python 2"""Django's command-line utility for administrative tasks.""" 3import os 4import sys 5 6 7def main(): 8 os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'ここの設定が間違えている.settings') 9 try: 10 from django.core.management import execute_from_command_line 11 except ImportError as exc: 12 raise ImportError( 13 "Couldn't import Django. Are you sure it's installed and " 14 "available on your PYTHONPATH environment variable? Did you " 15 "forget to activate a virtual environment?" 16 ) from exc 17 execute_from_command_line(sys.argv) 18 19 20if __name__ == '__main__': 21 main() 22

日本語でここの設定が間違えているという部分で、settings(設定ファイル)の名前or位置を正しく入力してあげれば解決すると思います!

ディレクトリ構造についての追記です

最終的に????コチラの構造になると良いです。
イメージ説明

どうしても環境の違いにによってファイルは異なるのですが、基本的にプロジェクトは上記画像のような構造となっています。

django_app |- django_app | |- settings.py | |- urls.pyなど… |- hello | |- views.pyなど… |- DBファイル(db.sqlite3など) |- manage.py

具体的にsoraraさんとの構造で異なる点はいくつかあるのですが、大きな差はディレクトリの階層の数です。
①django_appフォルダが2つしか無い
②DB関連のファイルはルートディレクトリ下にしかない
manage.pyhelloは同じディレクトリにある
この違いを修正していけば、正しく起動します。

soraraさんの場合であればファイルは生成できているのでコマンドは問題なく打てているようなので、既存のdjango_appプロジェクトは消して、djnago_appプロジェクトを初めから作り直したほうが早いです!(`・ω・´)ゞ
順序としては以下です!
①プロジェクトを作りたい場所に移動する
django-admin startproject プロジェクト名を打つ
③作成したプロジェクトにcd プロジェクト名で移動する
manage.pyがあることを確認する
python manage.py runserver 0.0.0.0:8000を打つ
⑥ブラウザでURLとしてlocalhost:8000で検索して、以下のページを見る
イメージ説明
python manage.py startproject helloを打ってhelloアプリが作成される
settings.pyにてINSTALLED_APPS欄があるので、以下のように変更する

python

1INSTALLED_APPS = [ 2 'django.contrib.admin', 3 'django.contrib.auth', 4 'django.contrib.contenttypes', 5 'django.contrib.sessions', 6 'django.contrib.messages', 7 'django.contrib.staticfiles', 8 'hello', 9]

python manage.py makemigrations
python manage.py migrate
python manage.py runserver 0.0.0.0:8000

これでうまく動くはずです!
もちろんhelloアプリの中身は書いたり、urls.pyをイジらないとと動きませんので、気をつけてください(´∀`)

投稿2020/04/18 21:20

編集2020/04/19 12:56
heacet43

総合スコア51

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sorara

2020/04/19 09:02

わかりやすく、ありがとうございます。 確認してみたのですが、きちんと'django_app.settings'と設定されているようでした。(><)こいった場合、どのようにしたらよろしいでしょうか?(><)
heacet43

2020/04/19 09:07 編集

そうでしたか! アプリケーションのフォルダ(ディレクトリ)の構造はどのようになっているか教えていただいてよろしいでしょうか…?(。・_・。) できればエラーの部分もスクリーンショットを撮って頂ければありがたいです!
sorara

2020/04/19 09:41

アプリケーションのフォルダの構造、質問を編集しました! エラー部分のスクリーンショットは調べて、撮れたのですが、こちらにどのように貼り付けたらいいのか、わからず。。。インターネットで調べ中です(><)せっかく教えてくださっているのに、申し訳ございません。もう少々お待ちいただければと思います。
heacet43

2020/04/19 09:45

いえいえ!画像は『画像の挿入』ボタンから恐らく貼れますよ!(僕もつい最近teratailを始めたのでわかってません笑) あと言葉足らずですみません…。プロジェクトの構造もお願いしてよろしいでしょうか?
sorara

2020/04/19 09:55

本当に、すみません(><)画像の挿入をおすと、画像を選択しろ、とでてしまい、なかなか画像挿入ができず。。。申し訳ございません。 そして、度々すみません。 プロジェクトの構造を質問に追加いたしました。 みずらくてすみません(><)
heacet43

2020/04/19 10:07

いえいえ、すみません!画像に関しては僕もわからないです…。 ありがとうございます! `manage.py`が二つあるみたいですが、プロジェクトはいま記載されている構造ですか??
sorara

2020/04/19 10:10

エラー全文のスクリーンショットを載せることができました! 質問を編集して載せております。 あっ!本当ですね。。。 プロジェクトは今記載している構造です(><)
sorara

2020/04/19 10:18

度々、本当に申し訳ございません。 構造、間違えておりました。 再度、質問を編集いたしました。
heacet43

2020/04/19 10:26 編集

画像の添付、修正ありがとうございます! 現状で思ったことを並べますね〜。 1. 修正して頂いたディレクトリの構造内で`settings.py`はどこにあるでしょうか? 2. 添付された画像に`ModuleNotFoundError: No module named 'django_app.settings'のエラーがない 3. 添付された画像から読み取れるエラーは`migrate`していないのが原因に見えますので次の手順でコマンドを実行してみてください(*^^)v ①python manage.py makemigrations ②python manage.py migrate ③python manage.py runserver わからない点があれば気軽に追加でコメントください(*´∀`*)
sorara

2020/04/19 10:39

丁寧に、本当にありがとうございます(><) もう一度構造を確認しまして、質問を編集させていただきました。django_appの中にjango_appがもう一つあって、その中にsettings.pyがありました! そして、画像ももう一度見直しをして貼り付けしなおりました。四枚目の上から2段目ぐらいに`ModuleNotFoundError: No module named 'django_app.settings'のエラーメッセージがでております。 みずらくて、本当に申し訳ございません。 そして、3で教えてくださったとおりしてみたのですが、やはりModuleNotFoundError: No module named 'django_app.settings'とエラーがでてしまい、できません。。。(;;) 本当に、いろいろとわかっておらず、申し訳ございません。
heacet43

2020/04/19 10:54 編集

いえいえ、僕も最初は全然分からなかったので同じです! 一度以下のコマンドで実行して頂いてよろしいですか? python manage.py runserver 0.0.0.0:8000 --settings=django_app.settings あと追加でエディタに表示されているプロジェクト構造のスクショも頂けたら嬉しいです! こちらも要求ばかりしていてすみません…笑
sorara

2020/04/19 10:58

とんでもないです!意味わからないことばかり言っているのに、丁寧に教えてくださって、ありがとうございます(><)まだ足りないことがありましたら、どんどん教えてください(><) エディタの表示のスクショを貼り付けました! あと、python manage.py runserver 0.0.0.0:8000 --settings=django_app.settingsとコマンドを実行しましたら、同じく、ModuleNotFoundError: No module named 'django_app.settings'というエラーがでてしまいました(;;)
heacet43

2020/04/19 11:20 編集

エディタのスクショありがとうございます! スクショを見る限りでは恐らくディレクトリの構造を変えないといけないですね。 カレントディレクトリから`settings.py`を探しているので今の構造では見つかりません。なので以下のコマンドを実行すればModuleNotFoundError: No module named 'django_app.settings'というエラーは恐らく消えます。 python manage.py runserver 0.0.0.0:8000 --settings=django_app.django_app.settings エラーは治りますが、後々厄介なことになるので、回答にすべき構造のスクショをのせるので、少々お待ちください! その間に先ほど載せたコマンドを実行してみてください!成功しなかったらすみません笑
sorara

2020/04/19 11:42

そうなんですね!私がデータを置換したのがおそらく、まずかったんですね(><) お手数をおかけして、本当に申し訳ございません。 ありがとうございます。 そして、python manage.py runserver 0.0.0.0:8000 --settings=django_app.django_app.settingsを実行してみました! 確かに、ModuleNotFoundError: No module named 'django_app.settings'というエラーが消えたのですが、今度はModuleNotFoundError: No module named 'hello'というエラーがでてしまい。。。(;;)本当に、申し訳ございません。
heacet43

2020/04/19 12:27

回答を更新しました!是非試してみてください〜(*^^)v 何か詰まったら全然気軽にコメントください! あともう少しなので頑張ってください!!
sorara

2020/04/19 13:24

本当に、ご丁寧にありがとうございます!ロケットが飛ぶところは問題なくできました! ただ、urls.pyなどを変更して、表示させていたようにいろいろと本に書かれているとおりにしたのですが、ブラウザにとぶと、Page not found (404)と表示されてしまいます。コマンドプロンプトは問題ありませんでした。 何度も、本当に申し訳ないのですが、もしお時間があれば、教えていただけないでしょうか?
heacet43

2020/04/19 13:28

良かったです(*´∀`*) 構いませんよ! ではまたスクショになるのですが(笑)、全てのurls.pyとviews.pyのスクショを頂いてよろしいですか?
sorara

2020/04/19 13:43

本当に、すみません(;;) urls.pyとviews.pyのスクショを載せさせていただきました!
sorara

2020/04/19 13:44

あと、一応、エラー画面もスクショさせていただました。
heacet43

2020/04/19 13:51

エラー画面を見る限りでは`jangp_app.urls.py`の設定がうまくいっていないようですね。 そこの`urls.py`のスクショを頂けますか? あと現在のディレクトリの構造のスクショも頂きたいです。
sorara

2020/04/19 13:59

エラー画像の下に2枚スクショを追加させていただきました。 そして、使用しているspiderの調子が悪く、ディレクトリの構造がうまく表示されず、、、ですので、ディレクトリの構造はスクショの右側に小さくですがのっております。左側がjangp_app.urls.pyになります。 そして、追加した2枚目のスクショの右側が追加した1枚目のスクショのディレクトリの構造の続きになります。
heacet43

2020/04/19 14:21 編集

恐らくTuyanoSYODAさんのDjango超入門で勉強されてますよね!笑 `jangp_app.urls.py`の位置は問題ないのですが、helloアプリケーションへのpathが定義されていないので、Chapter2のp56とp57を見返してみてください。 またhelloアプリケーションについて、一度`jangp_app`でプロジェクトを作成しているので、`django-admin startproject hello`を実行しちゃっていると思いますが、プロジェクトは2個作成する必要はありません。イメージとしては1つのプロジェクトにいくつかのアプリケーションという形で成り立っています。 なのでルートディレクトリにあるhelloフォルダをごと消して、`python manage.py startapp hello`を実行して、アプリケーションを作成してください。 あとはp51以降をしっかりと読んで実行していけばうまく行きます!
sorara

2020/04/19 14:25

そうです!Django超入門で勉強しています!笑 遅くまで、本当にありがとうございました! もう一度、本をよく読み慎重にやってみたいと思います(><) 本当に、丁寧にわかりやすく、ありがとうございました(;;)
heacet43

2020/04/19 14:30

僕も初めはあの本にお世話になったので、書いているコードにピンときました笑 あの本は割とオススメなので頑張ってください!(*´∀`*)
sorara

2020/04/19 14:31

そうだったんですね! 本当に、ありがとうございました(;;) 頑張りたいと思います!(^^)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問