Ошибка Django ‘ModuleNotFoundError: Нет модуля с именем «ocore»

#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