Как отключить режим отладки в oTree?
Я пытаюсь запустить веб-приложение от Otree (веб-платформа, основанная на django и Python) в рабочем режиме (debug = false). Я не могу найти, где находится переменная OTREE_PRODUCTION.
2 ответа
Переменная OTREE_PRODUCTION является системной переменной среды, то есть имеет область действия больше, чем ваш проект Otree. Из-за этого его сложнее установить. Ниже приведено описание того, как это сделать для Mac или других систем UNIX.
Вы можете отменить условное выражение, как предлагает предыдущий ответ, но если вы действительно хотите запустить эксперимент и запустить его на удаленном сервере, таком как Heroku, это не рекомендуется. Это потому, что вам, вероятно, потребуется отладка, и вам не нужно перезапускать (компилировать на удаленных серверах) только для этого. Если вы правильно используете переменную среды, вы избежите этой проблемы.
Следующие шаги работают для любых связанных с Otree переменных среды, таких как AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
, OTREE_AUTH_LEVEL
, а также OTREE_ADMIN_PASSWORD
,
Установка OTREE_PRODUCTION локально на Mac:
Все, что вам нужно сделать, это изменить .bash_profile
файл. Это говорит вашему терминалу общие вещи о том, как запустить в нем вещи. Он находится в вашем домашнем каталоге и является скрытым, отсюда и начальный период в названии. Используя выбранный вами текстовый редактор, откройте файл.
vim ~/.bash_profile
~/
указывает, что файл находится в вашем домашнем каталоге. Внутри файла вы увидите другие строки, подобные приведенным ниже, которые указывают, какую версию python запускать при вызове. Не меняй это.
# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
Все, что вам нужно сделать, это добавить две строки ниже и сохранить файл.
OTREE_PRODUCTION=1
export OTREE_PRODUCTION
Первая строка устанавливает переменную в True, а вторая передает эту переменную и присваивает значение всему, что может ее использовать. Более подробный ответ здесь.
Чтобы значения действительно передавались, оболочку необходимо перезапустить. Вы можете сделать это, запустив source ~/.bash_profile
Теперь вы можете проверить значение переменной, выполнив следующую команду.
echo $OTREE_PRODUCTION
$
указывает на то, что вещь, которую нужно "повторить", является переменной. Без этого он просто возвращает тот же текст.
Установка OTREE_PRODUCTION=1 для Heroku:
Возможно, вам даже не нужно или не нужно делать это локально, потому что вы можете просто указать Heroku работать в производственном режиме, пока локальная версия остается в режиме отладки. Предполагая, что вы все настроены на Heroku, вы можете выполнить следующую команду. С этой одной строкой вы можете переключаться между отладкой (OTREE_PRODUCTION=0
) и производство (OTREE_PRODUCTION=1
) на вашем производственном сервере.
heroku config:set OTREE_PRODUCTION=1
Затем вы можете просмотреть все переменные среды с
heroku config
Есть способ, не запомни его, НО ты можешь просто поменять условное: В settings.py: turn:
если environment.get('OTREE_PRODUCTION') не в {None, '', '0'}: DEBUG = False else: DEBUG = True
чтобы:
если environment.get('OTREE_PRODUCTION') не в {None, '', '0'}: DEBUG = True, иначе: DEBUG = False