Сервер разработки 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.

Другие вопросы по тегам