DjangoでmakemigrationsしたらModuleNotFoundError: No module named “アプリ名”とエラー吐かれたので、その解決策を備忘録として残しておきます。
実行環境。
- Windows10
- Python3.9.2
DjangoでmakemigrationsしたらModuleNotFoundError: No module named
Model作成したところで「さて、makemigrations」するか、とポチポチコマンド打ったところ
>python manage.py makemigrations
Traceback (most recent call last):
File "C:\Users\Juvenile0712\Desktop\dev\DjangoProject\django-react\drfapi\manage.py", line 22, in <module>
main()
File "C:\Users\Juvenile0712\Desktop\dev\DjangoProject\django-react\drfapi\manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "C:\Users\Juvenile0712\Desktop\dev\DjangoProject\django-react\myenv\lib\site-packages\django\core\management\__init__.py", line 419, in execute_from_command_line
utility.execute()
File "C:\Users\Juvenile0712\Desktop\dev\DjangoProject\django-react\myenv\lib\site-packages\django\core\management\__init__.py", line 395, in execute
django.setup()
File "C:\Users\Juvenile0712\Desktop\dev\DjangoProject\django-react\myenv\lib\site-packages\django\__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "C:\Users\Juvenile0712\Desktop\dev\DjangoProject\django-react\myenv\lib\site-packages\django\apps\registry.py", line
91, in populate
app_config = AppConfig.create(entry)
File "C:\Users\Juvenile0712\Desktop\dev\DjangoProject\django-react\myenv\lib\site-packages\django\apps\config.py", line 212, in create
mod = import_module(mod_path)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.1776.0_x64__qbz5n2kfra8p0\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'api'
こんなエラーが吐かれました。エラー箇所の行が特定されてなくModuleNotFoundError: No module named 'api'
としか表示されていない、これじゃあどこを直せばいいのかさっぱり分かりません。
答えはsettings.pyの中にあった
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'アプリ名(api)', <<<ModuleNotFoundErrorの原因
'rest_framework',
'rest_framework.authtoken',
]
apiモジュールが見つかりませんとのエラー。実はこれがアプリ名ではなくてプロジェクト名になっていたっぽいです。これを本来のアプリ名に変更して、、
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'drfapi', <<<<<ここをアプリ名に変更
'rest_framework',
'rest_framework.authtoken',
]
これでmakemigrationsもmigrateも通りました!
DjangoでModuleNotFoundError: No module named(振り返り)
同じ過ちを繰り替えさないために振り返り。
どこもおかしくないだろ!と思っているときはたいていスペルミスが多いですが、今回はアプリとプロジェクト名を間違えていたみたいです。以後気を付けます。