При попытке произвести сфинкс документацию для повторного использования Django приложения, я ударил по следующей snafoo. Когда sphinx анализирует код model.py
, это мешает его код, пытающийся получить доступ к настройкам проекта Django . Поскольку это автономное/многоразовое приложение , нет основного проекта , обеспечивающего эти параметры, т. Е. Нет файла ROOT/PROJECT/PROJECT/settings.py
.Сфинкс и повторно использовать Django приложение
Настройка
В интересах ясности здесь является то, что я сделал. Траверс к тому, что будет обычный проект папку cd ROOT/PROJECT
и создать приложениеdjango-admin startapp APPLICATION
порождающий следующую структуру
/ROOT/
/PROJECT/
/APPLICATION/
admin.py
apps.py
models.py
tests.py
views.py
Примечание: Там нет /ROOT/PROJECT/PROJECT/*.py
файлов, потому что я не перейти к корня папку cd root
и создать проект используя django-admin createproject
как обычно.
Следующая страница создает документацию по сфинксу spinx-quickstart docs
, производящую следующую дополнительную структуру.
/ROOT/
/PROJECT/
/docs/
/source/
...
conf.py
make.bat
Это документы, построенные рядом с APPLICATION
.
Вопрос
Что я помещаю в conf.py
, чтобы правильно загрузить приложение без там быть settings.py
файл?
Домашнее задание
В попытке решить эту проблему, я просмотрел ряд SO Вопросы, блоги и Джанго Документах и не нашли лаконичное решение. Поскольку это было задано несколько раз до этого, я бы хотел мотивировать, что он не будет закрыт как дубликат, если ответ в предлагаемом дубликате использует один из этих фрагментов, поскольку это решение.
сбой с
AppRegistryNotReady
from django.conf import settings settings.configure()
Подобно первому способу неудачи, т.е.испускает
AppRegistryNotReady
from django.conf import settings settings.configure() settings.INSTALLED_APPS += ['fintech']
завершается с
ImproperlyConfigured
import django django.setup()
Существует очень старое решение упоминая осуждается
setup_environ
from django.core.management import setup_environ from django.conf import settings settings.configure() setup_environ(settings)
Это также любимый ответ, но терпит неудачу, если есть нет
settings.py
файл.import django os.environ['DJANGO_SETTINGS_MODULE'] = 'PROJECT.settings' django.setup()
Я также сделал этот вопрос довольно многословен, как связанные с ними вопросы на SO довольно лаконична и не особенно полезны. Если это какая-то помощь, я использую Django 1.10.