1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Django】ModuleNotFoundError: No module named '~~~' を解決した記録

Posted at

目次

対象読者

  • Django初心者の方
  • ModuleNotFoundError: No module named ~ に悩んでいる方

出たエラー

  • 実行コマンドは python manage.py runserver でした。
  • 実行直後に ModuleNotFoundError: No module named 'modeltomany' が発生し、開発サーバーが起動せず停止しました。

問題点

  • Djangoで作成したアプリを正しく登録していませんでした。
    modelonetomany というアプリを作成していましたが、INSTALLED_APPS に誤って modeltomany と記載していたため、Django がアプリを読み込めず例外を投げていました。
  • 重要: include() はアプリ登録が前提です。
    ルート URL で include('modelonetomany.urls') を呼び出すと、Django は指定された文字列をモジュールとして import します(参考: Including other URLconf modules)。その際、アプリが INSTALLED_APPS に登録されていないと、内部で参照されるモジュールを解決できません。したがって、アプリ名は設定ファイルに正確に登録する必要があります。

config/settings.py のアプリ登録

公式ドキュメントの INSTALLED_APPS 解説をご参照ください: https://docs.djangoproject.com/en/5.0/ref/settings/#std-setting-INSTALLED_APPS

今回のプロジェクトでは、次のようにアプリを登録しています。

29:config/settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'modelonetomany',  # ← 今回は 'modelonetomany' を追加。各自のアプリ名に置き換えてください。
]

ご自身のプロジェクトでは、'modelonetomany' の部分を作成されたアプリ名に置き換えてください。

解決方法

  • config/settings.pyINSTALLED_APPS に正しいアプリ名を登録します。例として 'modelonetomany' を記載します。
  • 設定を保存した後、再度 python manage.py runserver を実行し、サーバーが正常に起動することを確認します。

以上の対応でモジュールが正しく読み込まれ、エラーを解消できました。

補足

  • ポイント: アプリ名とモジュール名のスペルミスはよくある原因ですので、作成したアプリ名と設定ファイル上の記述が一致しているかを常に確認することをおすすめします。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?