5

Python Web アプリケーションのデバッグ、特に Web リクエストの実行に関する情報が見つからないようです。

これは不可能ですか?いいえの場合、なぜですか?

4

3 に答える 3

11

あなたが置く場合

import pdb
pdb.set_trace()

コードでは、Web アプリは実行時に pdb デバッガー セッションにドロップされますset_trace

また、便利です

import code
code.interact(local=locals())

これにより、Python インタープリターが表示されます。Ctrl-d を押すと、実行が再開されます。

さらに便利なのは、

import IPython.Shell 
ipshell = IPython.Shell.IPShellEmbed()
ipshell(local_ns=locals())

これにより、IPython セッションにドロップされます (IPython がインストールされていると仮定します)。ここでも、Ctrl-d を押すと実行が再開されます。

于 2010-08-09T18:32:21.123 に答える
3

Apache とmod_wsgiまたはmod_pythonを介して Web アプリケーションを実行している場合、どちらも pdb を使用したデバッグの段階的なサポートを提供します。トリックは、-X フラグを使用してフォアグラウンド モードで apache を実行する必要があることです。

私の Gentoo システムでは、これを実行します (これは基本的に、apache init スクリプトが -k start を -X に置き換えて使用するコマンドと同じです):

/usr/sbin/apache2 -D DEFAULT_VHOST -D INFO -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST -D PYTHON -d /usr/lib64/apache2 -f /etc/apache2/httpd.conf -X
于 2010-08-09T18:47:09.710 に答える
0

import pdb; pdb.set_trace()デバッグを開始したい正確な場所でPython Debuggerを使用すると、ターミナルがその行で一時停止します。詳細はこちら: http://plone.org/documentation/kb/using-pdb

于 2010-08-09T18:33:04.993 に答える