Извиняюсь за основной вопрос, но я, честно говоря, еще не нашел действенного ответа, хотя я уверен, что это простое решение.
Я звоню в файл python, который является частью Djangoприложение (та же папка, что и у моделей, видов и т. д.) из командной строки, из совершенно другого рабочего каталога.Файл python называется модулем, а не пакетом, поскольку я не использую аргумент "-m".Файл python импортируется из файла моделей, после чего я получаю длинный Traceback через файлы init и т. Д., Заканчивающийся ошибкой ниже:
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
Поэтому я добавляю следующую строкув файле python перед оператором from models import modelA, modelB
:
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', "C:/Users/oktested/further_file_path/settings")
В основном я помещаю туда полный путь к файлу settings.py без расширения .py.Но после этого я получаю ModuleNotFoundError: No module named 'C:\Users\oktested\'
.
Как мне указать путь к файлу settings.py, который уже существует в моем проекте Django?Я использую Django 2.1 в Windows 10 к сведению.
Обновление со структурой файла проекта:
project1/
db
manage.py
MyAppFolder/
__init__.py
models.py
views.py
script.py
project1folder/
settings.py
__init__.py
script.py - это файл, который мне нужно вызывать извне, и settings.pyэто файл настроек.В manage.py django_settings_module легко объявляется как 'project1folder.settings', поскольку он находится в том же каталоге, что и manage.py.Как мне объявить django_settings_module в script.py, чтобы script.py продолжал вести себя нормально, как если бы я вызывал его из приложения Django?