問題は、WSGI サーバーが複数のプロセスを使用し、標準ストリーム (in、out、および) をデタッチまたはリダイレクトすることです。すべてを揺さぶるエラー。
Apache httpd および mod_wsgi の場合:
- で始まり
apachectl -X
、not apachectl start
(norservice apache2 start
など)
WSGIDaemonProcess
、WSGIProcessGroup
などは使用しないでください。デーモンのプロパティを置き換えるために、、などを
追加する必要がある場合があります。WSGIPythonHome
WSGIPythonPath
同様に、gunicorn の場合は、設定debug=True
とdaemon=False
.
mod_wsgi ガイドでは、すべてのリクエストの開始時に pdb を呼び出すクラスでラップwsgi.application
することを推奨していますが、他のトラップは機能するはずです。
class Debugger:
def __init__(self, object):
self.__object = object
def __call__(self, *args, **kwargs):
import pdb, sys
debugger = pdb.Pdb()
debugger.use_rawinput = 0
debugger.reset()
sys.settrace(debugger.trace_dispatch)
try:
return self.__object(*args, **kwargs)
finally:
debugger.quitting = 1
sys.settrace(None)
application = Debugger(application)