Автономный скрипт Django в Django 4.1
Я пытаюсь запустить автономный скрипт в django 4.1. У меня есть настройка, предложенная в этом сообщении в верхней части моего файла:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "path_to_settings.settings")
import django
django.setup()
Однако в 4-й строке я получаю следующую ошибку:
ModuleNotFoundError: No module named 'sport_api'
Это моеINSTALLED_APPS
в настройках.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# applications
'sport_api',
'sport_bet',
# library
'rest_framework',
'corsheaders',
]
Как мне обойти эту ошибку?
Обновлять:
3 ответа
Только с этим фрагментом ваш скрипт должен находиться в том же каталоге, что и manage.py.
В противном случае, если вы вкладываете его вBackend\sportivo\sport_api
, то вам нужно:
from pathlib import Path
import sys
BASE_DIR = Path(__file__).resolve().parent.parent
sys.path.append(BASE_DIR.as_posix())
# ...
В зависимости от того, насколько он вложен, просто настройтеBASE_DIR
с.parent
по мере необходимости.
Однако лучше всего использовать пользовательские команды управления для автономных сценариев.
Вы должны переместить скрипт вmanage.py
слой. Это единственное, что заставило меня работать.
Фактический модуль не найден, так как вы не указали правильный путь
Попробуй это
sportivo.sport_api
то же самое для другого.Проверьте это для лучшего понимания