10

最初は、テスト サーバーが含まれている Django アプリがありました。このセットアップをデバッグするimport pdb; pdb.set_trace()には、コード内の任意の場所に を追加するだけで、ターミナル (コマンド ライン) で対話型デバッガーに移動するブレーク ポイントを設定できます。

最近、いくつかのパフォーマンスの利点を得るために、gunicorn に移行しました。この Gunicorn セットアップを使用しているときに、どうすれば同様の動作を得ることができますか? とでガンコーンの設定をしてみましたdebug=Trueが、うまくいきdaemon=Falseません。

誰にもこれに対する解決策がありますか?

4

5 に答える 5

5

リバース プロキシ構成 (nginx の下) で緑色のユニコーンをデバッガー/デバッグ モードで実行するには、 PyCharmの実行/Django/構成の編集で次の設定を入力します。

もちろん、7777nginx がプロキシするように構成したポート (の代わりに) を使用します。

スクリーンショット

于 2013-06-19T12:21:34.497 に答える
4

最近、同様の問題に遭遇しました。@dudklein ソリューションを適用できませんでした (デバッガーが入力を取得しようとしているときに I/O エラーが発生します - ipdb、pdb など)。

リモート python debbuger - winpdbを使用しましたが、これは組み込みデバッグです。

  1. あなたのvirtualenvにwinpdbをインストールします

    pip install winpdb
    
  2. コードに組み込みデバッガーをインポートして実行します。

    import rpdb2
    rpdb2.start_embedded_debugger('pass')
    
  3. --timeout 引数を指定して gunicorn を実行する

    gunicorn -t 3600 env:application
    
  4. ブラウザを使用して適切なビューを実行します。http://127.0.0.1:8000/your-view/

  5. winpdb を使用して組み込みデバッガーに接続します。

    winpdb -a /path/to/django/app/views.py
    

    パスワードの入力を求められ (コードで設定したものを使用してください。私の例では「pass」です)、デバッガーで素敵な GUI を実行します。

  6. のチュートリアルが必要な場合winpdb-ここにいます

ここに画像の説明を入力

于 2014-04-16T10:32:44.013 に答える
2

ライブラリからクラスapplicationのインスタンスであるインスタンスを指して gunicorn を起動できる場合は、ブラウザでwerkzeug デバッガを使用してブレーク ポイントを設定できます。DebuggedApplicationwerkzeugimport ipdb; ipdb.set_trace()

import django.core.handlers.wsgi
from werkzeug.debug import DebuggedApplication

application = django.core.handlers.wsgi.WSGIHandler()
application = DebuggedApplication(application, evalex=True)

もちろん、werkzeug ライブラリと ipdb を必ずインストールしてください。(pip install werkzeugpip install ipdb)

于 2012-11-03T16:07:08.377 に答える
2

これで、djnago と ipdb で gunicron を使用できるようになりました。

走るpython -m ipdb manage.py run_gunicorn --debug -t 3600

Django 1.4 と gunicorn 0.16.1 を使用しています。import ipdb; ipdb.set_trace()その後、通常はコードで使用できます。werkzeugライブラリは必要ありません。

Facebook アプリをデバッグしようとしているのですが、開発サーバーでビルドを使用できません。Facebook が SSL を使用しようとしていて、開発サーバーが適切に応答できないためです。

解決策を探していたときに、投稿pdb: Using the Python debugger in Djangoを見つけました。これは、常に実行することを提案してpython -m pdb manage.py runserverいます。これは django の開発サーバーでは必要ありませんが、gunicordn と ipdb で試してみることにしました。

于 2012-12-14T09:57:50.607 に答える
0

私が最終的にやったのはpython manage.py runserver <your_external_IP>:8000、使いたいときに実行することですpdb

したがって、同じマシンに 2 つの異なるリポジトリをgunicorn用意する必要がありますpdb。TEST ビルドで安定しているように見えたら、 を とマージTEST branchLIVE branchます。LIVE branchマージの競合を回避する方法では、開発や変更は発生しません。

うまくいけば、これは中毒になっている他の人に役立ちますpdb;)

于 2012-12-14T03:22:47.830 に答える