ModuleNotFoundError: Нет модуля с именем 'apps' - Как заставить Django найти мое приложение?
Я начинающий Django, а также новый пользователь SO, и хочу зарегистрировать свое приложение в settings.py.
Версия программного обеспечения:
- Python 3.11.9
- Django 4.2.11
Я создал свое приложение (с именем: Portal), следуя этому руководству: startapp с manage.py для создания приложения в другом каталоге
Вот дерево проекта:
C:.
├───media
│ ├───book-covers
│ └───users
├───static
│ └───admin
│ ├───css
│ ├───fonts
│ └───js
└───project
├───apps
│ ├───auth
│ ├───portal
│ │ ├───media
│ │ ├───migrations
│ │ │ └───__pycache__
│ │ ├───static
│ │ │ └───portal
│ │ │ ├───css
│ │ │ ├───icons
│ │ │ ├───images
│ │ │ └───js
│ │ ├───templates
│ │ │ └───catalog
│ │ └───__pycache__
│ └───users
├───plugins
│ └───tinymce
├───static
└───__pycache__
Однако, когда я регистрирую свое приложение Portal, Django выдает ошибку:
ModuleNotFoundError: No module named 'apps'
apps.py
from django.apps import AppConfig
class PortalConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'apps.portal'
settings.py
INSTALLED_APPS = [
'',
'apps.portal',
'',
]
Я знаю, что это может быть дублирующим вопросом, но все же я не могу решить эту проблему. Что я должен сделать, чтобы Django нашел мое приложение? Пожалуйста, будьте как можно более конкретными, потому что я совсем новичок. Спасибо за ваше время.
Я пробовал делать шаги, описанные здесь: Правильный способ регистрации приложений в Django
Добавьте это в ваш settings.py
import sys
BASE_DIR = Path(__file__).resolve().parent.parent
sys.path.insert(0, os.path.join(BASE_DIR, 'apps')) # your 'apps' dir containing django apps
Обновите этот код и зарегистрируйтесь
apps.py
from django.apps import AppConfig
class PortalConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'portal'
settings.py
INSTALLED_APPS = [
'',
'portal',
'',
]