Сервер разработки App Engine не перезагружает код при изменении
Я работаю над приложением Python, которое будет работать поверх Google App Engine. Я настроил свое приложение со следующей структурой каталогов:
approot/
app.yaml
index.yaml
myapp.py
controllers/
some_controller.py
some_controller1.py
models/
views/
...etc...
Моя проблема заключается в том, что сервер разработки не всегда автоматически перезагружает мой код при внесении изменений, даже если в документации Google говорится, что это произойдет.
Единственный раз, когда он перезагружает мой код, это когда я делаю изменения в каталоге верхнего уровня моего приложения. Все в подкаталоге (например, контроллеры) игнорируется. Я должен останавливаться и запускать сервер каждый раз, когда вносятся изменения.
Я считаю, что это действительно мешает моему прогрессу в разработке, тем более что кнопки перезапуска нет, вам нужно нажать "Стоп", а затем начать.
Есть ли лекарство от этого или я просто делаю это неправильно? Мне действительно нравится иметь хорошо организованный проект, и я бы предпочел не выгружать все мои файлы в каталог верхнего уровня.
2 ответа
Механизм перезагрузки, вероятно, связан с механизмом импорта по умолчанию и встроен __import__
функция. Если вы (или ваш фреймворк) загружаете свои модули каким-то другим, умным способом, перегрузчик может не заметить. Возможный обходной путь - явно импортировать ключевые модули в ваш myapp.py
модуль.
Дважды проверьте, что вы установили pyobjc
сервер разработки будет жаловаться так:
UserWarning: Обнаружение изменений исходного кода не поддерживается, поскольку ваша версия Python не включает PyObjC ( http://pyobjc.sourceforge.net/). Пожалуйста, установите PyObjC или, если это нецелесообразно, сообщите об ошибке по адресу http://code.google.com/p/appengine-devappserver2-experiment/issues/list.