## 事象
エラー内容。 `python manage.py` 実行だけで発生する。
```error
Traceback (most recent call last):
File "/Users/tadashi-aikawa/tmp/drf-serializer-sandbox/manage.py", line 22, in <module>
main()
~~~~^^
File "/Users/tadashi-aikawa/tmp/drf-serializer-sandbox/manage.py", line 18, in main
execute_from_command_line(sys.argv)
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/Users/tadashi-aikawa/tmp/drf-serializer-sandbox/venv/lib/python3.13/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
~~~~~~~~~~~~~~~^^
File "/Users/tadashi-aikawa/tmp/drf-serializer-sandbox/venv/lib/python3.13/site-packages/django/core/management/__init__.py", line 416, in execute
django.setup()
~~~~~~~~~~~~^^
File "/Users/tadashi-aikawa/tmp/drf-serializer-sandbox/venv/lib/python3.13/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/tadashi-aikawa/tmp/drf-serializer-sandbox/venv/lib/python3.13/site-packages/django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "/Users/tadashi-aikawa/tmp/drf-serializer-sandbox/venv/lib/python3.13/site-packages/django/apps/config.py", line 193, in create
import_module(entry)
~~~~~~~~~~~~~^^^^^^^
File "/Users/tadashi-aikawa/.local/share/mise/installs/python/3.13.7/lib/python3.13/importlib/__init__.py", line 88, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1324, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'snippets'
```
ファイル構成。
```console
$ tree --git-ignore
.
├── db.sqlite3
├── manage.py
└── tutorial
├── __init__.py
├── __pycache__
├── asgi.py
├── settings.py
├── snippets
│ ├── __init__.py
│ ├── __pycache__
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── __init__.py
│ │ └── __pycache__
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── urls.py
└── wsgi.py
```
### 環境
| 対象 | バージョン |
| ------------------------- | ---------- |
| [[macOS]] | 15.7 |
| [[Django]] | 4.2 |
| [[Django REST framework]] | 3.16.1 |
| [[Python]] | 3.13.7<br> |
## 原因
`app` の指定がプロジェクトを含むパスになっていないから。
`tutorial/setting.py`
```python
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"rest_framework",
"snippets", # tutorial. がない
]
```
`tutorial/snippets/app.py`
```python
from django.apps import AppConfig
class SnippetsConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
name = "snippets" # tutorial. がない
```
## 解決方法
`tutorial/setting.py`
```diff
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"rest_framework",
- "snippets",
+ "tutorial.snippets",
]
```
`tutorial/snippets/app.py`
```diff
from django.apps import AppConfig
class SnippetsConfig(AppConfig):
default_auto_field = "django.db.models.BigAutoField"
- name = "snippets"
+ name = "tutorial.snippets"
```