Задать вопрос
chewarer
@chewarer

Как импортировать настройки Django из самостоятельного скрипта?

Пишу скрипт отдельно от Джанги, импортировать в него лишнее не хочу. Нужны только настройки Django из settings_local.
Структура такая:
apps
- __init__.py
- settings_local.py
standalone
- __init__.py
- syncraw.py

В syncraw.py пробовал разные варианты из нижеперечисленных:
from .settings_local import DATABASES
from ..settings_local import DATABASES

Получаю ошибку ValueError: Attempted relative import in non-package
  • Вопрос задан
  • 789 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 2
@marazmiki
Укротитель питонов
Рабочий (но неправильный) ответ — добавить директорию, в который лежат и apps, и standalone, в PYTHONPATH.
Это делается двумя путями: или через переменную окружения PYTHONPATH при запуске из консоли:

$ PYTHONPATH=. python standalone/syncaw.py

либо добавить директорию прямо в скрипте:

# syncraw.py
import sys
import os

sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))

from apps.settings_local import *
print(DEBUG)


Правильный ответ — не делать так вообще. И отказываться от колхоза с settings_local
Ответ написан
Astrohas
@Astrohas
Python/Django Developer
import sys
sys.path.append('..')
from apps.settings_local import DATABASES
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
loader777
@loader777
Python/django разработчик
Если скрипт связан с Django проектом, правильно сделать managment command - https://docs.djangoproject.com/en/1.10/howto/custo...
Ответ написан
devalone
@devalone
̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻̻
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'projectName.settings')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы