Я разрабатываю flask.app, который использует функциональность веб-сокета и устанавливает flask-socket, чтобы обеспечить это. Поэтому разработчик флеш-дескрипторов рекомендует gunicorn в качестве веб-сервера. Мой вопрос в том, как подключить удаляющий отладчик pycharm с помощью gunicorn, чтобы перехватить выполнение с помощью контрольных точек.
Как отлаживать flask.app с pycharm 2.x, который работает на gunicorn
Ответ 1
Settings > Project Settings > Python Debugger
Там есть опция для включения "совместимой с gevent отладки".
Затем перейдите в настройки своего отладчика (ярлык находится через панель инструментов, щелкните раскрывающийся список рядом с иконками воспроизведения/отладки и выберите "Изменить конфигурации"
Установите "Script" на ваш virtualenv isntallation of guniororn, что-то вроде:
/Users/iandouglas/.virtualenvs/defaultenv/bin/gunicorn
Задайте параметр Script для чего-то вроде
-b 192.168.1.1:9000 app:yourappname
(предполагая, что ваш основной запуск script называется app.py, и вы ссылаетесь на него как на "yourappname"
"Рабочий каталог" будет автоматически установлен в противном случае, установите его в любом месте вашего кода: /Users/iandouglas/PycharmProjects/MyExampleApp
У меня есть отдельный файл конфигурации для настроек моего увольнения, в котором указывается хост/порт, но мне все еще нужно указать параметр -b 0.0.0.0:5001
, чтобы заставить gunicorn привязываться ко всем IP-адресам моей машины на порту 5001.
Ответ 2
- отредактируйте файл python для запуска флэков
$ vim manage.py
- удалить параметр отладки
from web import app
import sys
if __name__ == '__main__':
# app.run(host='0.0.0.0', port=app.config["PORT"], debug=app.config["DEBUG"])
app.run(host='0.0.0.0', port=9998, debug=False)