CherryPy классный легкий и удобный фреймворк под Python.
Столкнулся сегодня с такой проблемой: он автоматически перезапускается когда в исходниках происходят изменения (autoreloader). Вроде бы всё отлично, но возникает проблема с дебагом. Когда проект запущен из PyCharm авторелоад отсоединяет процесс от среды разработки и он болтается в памяти. Работает, продолжает обрабатывать запросы и релоадится при изменении фйлов. Но! Подключить дебагер нельзя. Попытка запуска завершается ошибкой с руганью на то, что порт занят и это вполне логично. Приходится искать этот процесс в таск-менеджере и убивать, либо добавлять функционал выключения CerryPy приложению и глушить его через браузер. И так каждый раз. Дико неудобно.
Ответ вроде бы лежит наповерхности, но есть нюанс.
Так вот, доки говорят, что autoreloader отключается через конфигуратор, нужно выставить engine.autoreload.on в False. Я попытался проделать это и пытался выставить это значение в секции [global] файла с конфигом. Долго мучился, но эффекта не добился.
Всё заработало и autoreloader отключился только после того как я добавил строку cherrypy.config.update({'engine.autoreload.on':False}) перед запуском cherrypy.engine.start()
Всё заработало и autoreloader отключился только после того как я добавил строку cherrypy.config.update({'engine.autoreload.on':False}) перед запуском cherrypy.engine.start()