#python #python-3.x #django #modulenotfounderror
#питон #python-3.x #джанго #модульный неосновательрор
Вопрос:
Новичок в Django и только что приступил к созданию нового проекта, следуя учебнику.
Я создал виртуальную среду следующим образом:
pip install virtualenv
virtualenv myproject_3_7_3
Затем я активирую виртуальную env и установлю Django следующим образом:
cd myproject_3_7_3
source bin/activate
pip install django
Это успешно устанавливает версию Django 3.2.10, поэтому затем я активирую проект, добавлю некоторую структуру папок и создам приложение с помощью следующих команд:
django-admin startproject myproject
cd myproject
mkdir apps
mkdir apps/core
python manage.py startapp core apps/core
Затем я открываю VSCode, и я вижу проект и все папки/файлы по умолчанию там.
Чтобы запустить приложение, которое я запускаю:
python manage.py startapp core apps/core
Но я немедленно получаю следующую ошибку в терминале.
Traceback (most recent call last): File "/Users/myuser/myproject_3_7_3/lib/python3.7/site-packages/django/apps/config.py", line 244, in create app_module = import_module(app_name) File "//anaconda3/lib/python3.7/importlib/__init__.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "lt;frozen importlib._bootstrapgt;", line 1006, in _gcd_import File "lt;frozen importlib._bootstrapgt;", line 983, in _find_and_load File "lt;frozen importlib._bootstrapgt;", line 965, in _find_and_load_unlocked ModuleNotFoundError: No module named 'ocore' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "manage.py", line 22, in lt;modulegt; main() File "manage.py", line 18, in main execute_from_command_line(sys.argv) File "/Users/myuser/myproject_3_7_3/lib/python3.7/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line utility.execute() File "/Users/myuser/myproject_3_7_3/lib/python3.7/site-packages/django/core/management/__init__.py", line 395, in execute django.setup() File "/Users/myuser/myproject_3_7_3/lib/python3.7/site-packages/django/__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "/Users/myuser/myproject_3_7_3/lib/python3.7/site-packages/django/apps/registry.py", line 91, in populate app_config = AppConfig.create(entry) File "/Users/myuser/myproject_3_7_3/lib/python3.7/site-packages/django/apps/config.py", line 250, in create app_config_class.__qualname__, django.core.exceptions.ImproperlyConfigured: Cannot import 'ocore'. Check that 'apps.core.apps.OcoreConfig.name' is correct.
Изучение apps.py
того, что создается, показывает следующее содержимое:
from django.apps import AppConfig class OcoreConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'ocore'
Это отличается от apps.py
файла, приведенного в руководстве, поэтому моей первоначальной мыслью было, что это может быть связано с различием версий, однако тщательный поиск этого файла не дает никакой информации о том, что ocore
такое или что означает эта ошибка.
Кто-нибудь может помочь мне решить эту проблему?
Ответ №1:
Орфографическая ошибка
Я попытался повторить вашу ошибку.
При создании приложения вы по ошибке создали его с именем «ocore».
Но в settings.py
INSTALLED_APPS = [ ... apps.core, # This is what you added I presume apps.ocore, # this must be done ]
Созданное имя приложения должно быть таким же в массиве INSTALLED_APPS, присутствующем в settings.py о джанго.
Еще одна вещь «startapp» просто создайте для вас структуру каталогов с необходимыми файлами и конфигурацией. Он не будет запускать проект для того, что вам нужно сделать python manage.py runserver