Ошибка Django 'ModuleNotFoundError: Нет модуля с именем 'ocore'
Новичок в 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 "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", 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 <module>
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
или что означает эта ошибка.
Может ли кто-нибудь помочь мне решить эту проблему?
Орфографическая ошибка
Я попытался воспроизвести вашу ошибку.
При создании приложения вы ошибочно создали приложение с именем "ocore".
Но в settings.py
INSTALLED_APPS = [
...
apps.core, # This is what you added I presume
apps.ocore, # this must be done
]
Имя созданного приложения должно совпадать с именем в массиве INSTALLED_APPS, присутствующем в settings.py из django.
Еще одна вещь "startapp" только создает структуру каталогов для вас с необходимыми файлами и конфигурацией. Он не будет запускать проект, для этого вам нужно сделать python manage.py runserver