web-dev-qa-db-ja.com

gunicornで実行されているpycharm2.xでflask.appをデバッグする方法

私はWebソケット機能を使用するflask.appを開発しており、それを提供するために flask-socket をインストールしています。したがって、フラスコソケットの開発者は、Webサーバーとして gunicorn を推奨しています。私の質問は、pycharmのremoveデバッガーをgunicornに接続して、ブレークポイントで実行をインターセプトする方法です。

25
arbyter

Settings > Project Settings > Python Debugger

「gevent互換デバッグ」を有効にするオプションがあります。

次に、デバッガー設定に移動します(ショートカットはツールバーを使用し、再生/デバッグアイコンの近くにあるドロップダウンをクリックして、[構成の編集]を選択します。

「スクリプト」をvirtualenvのgunicornのインストールに設定します。次のようになります。

/Users/iandouglas/.virtualenvs/defaultenv/bin/gunicorn

「スクリプトパラメータ」を-b 192.168.1.1:9000 app:yourappnameのようなものに設定します(プライマリ開始スクリプトがapp.pyと呼ばれ、「yourappname」として参照していると仮定します)

「作業ディレクトリ」は自動的に設定されます。それ以外の場合は、コードが存在する場所に設定します。/Users/iandouglas/PycharmProjects/MyExampleApp

ホスト/ポートを指定するgunicorn設定用の個別の構成ファイルがありますが、ポート5001でマシン上のすべてのIPにgunicornを強制的にバインドするには、-b 0.0.0.0:5001パラメーターを指定する必要がありました。

32
iandouglas

PyCharm 2018.1.3 Professionalの私の場合:

  1. 実行/デバッグ構成に移動 作成および編集-実行-デバッグ-構成

  2. 新しい「Python」構成を選択します

  3. スクリプトパス:your_path_to_/venv/bin/gunicorn
  4. パラメータ(私の場合):-b :5001 --access-logfile - --error-logfile - "run:create_application()"
  5. Pythonインタープリター:venv pythonプロジェクトのバージョン
  6. 作業ディレクトリ:プロジェクトへのパス
  7. 保存してDEBUGを押します(Shift + F9)
  8. 幸せになる!
7
MrNinjamannn
  • flask起動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)
0
Binhong Wu