django - кажется, что settings.py загружается несколько раз?

РЕДАКТИРОВАТЬ Я просчитался - он распечатывается дважды, а не четыре раза.

Я положил это в свой settings.py

print 'ola!'

и при запуске "ola" печатается дважды! Кажется, что-то не так с моим проектом pycharm django... есть идеи, почему это произойдет? Это не цикл или что-то в этом роде (во всяком случае, я знаю об этом)

ваше здоровье!

YAY Пользователь, известный только как "rohit", согласно комментариям, определил, что решение можно найти здесь: https://stackoverflow.com/a/2110584/1061426 ~ см. комментарий об отключении перезагрузки.

ВНИМАНИЕ У меня нет готового кода Django, поэтому я не знаю, что будет делать noload. Удачи, солдаты.


person bharal    schedule 22.06.2012    source источник
comment
Нашел ответ здесь: stackoverflow.com/questions/2110545/   -  person rohit    schedule 04.11.2014


Ответы (4)


Если вы распечатаете идентификатор потока в settings.py, вы увидите, что settings.py на самом деле загружается в два разных потока.

См. этот ответ stackoverflow и эту статью для получения дополнительной информации.

person jarmod    schedule 16.03.2013

На самом деле то, что делает Django, — это обёртка вокруг настроек. По сути, это объект (объект настроек, если хотите), который дает вам доступ к некоторым прямым сеттерам, таким как settings.WHATEVER, поэтому похоже, что вы получаете доступ к глобальным переменным в settings.py напрямую.

Я действительно не помню, почему импорт происходит дважды. Я изучал его однажды, когда работал над django-dynamic-settings, в котором используется очень похожий подходит как сам Джанго. В любом случае, если вас интересует "магия", вы можете следить за потоком, начиная с вызова execute_from_command_line в manage.py.

person Torsten Engelbrecht    schedule 22.06.2012

Django делает некоторые странные вещи с settings.py, и он будет выполняться более одного раза. Я привык видеть, что он импортируется дважды, не знаю, почему в PyCharm вы получаете четыре раза. Вы должны быть осторожны с утверждениями с побочными эффектами в settings.py.

person Ned Batchelder    schedule 22.06.2012

Тесно связанный вопрос был задан по крайней мере дважды с тех пор. Я могу добавить, что разработчик ядра Django отверг идею о том, что это какая-то ошибка Django; это нормальное поведение.

См. также это из Грэм Дамплтон.

person Mike O'Connor    schedule 29.09.2014