Как отлаживать flask.app с pycharm 2.x, который работает на gunicorn

Я разрабатываю flask.app, который использует функциональность веб-сокета и устанавливает flask-socket, чтобы обеспечить это. Поэтому разработчик флеш-дескрипторов рекомендует gunicorn в качестве веб-сервера. Мой вопрос в том, как подключить удаляющий отладчик pycharm с помощью 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)