threads enable emperor deploy python uwsgi

python - enable - uwsgi module



¿Cómo depurar la aplicación python bajo uWSGI? (3)

Cuando intento usar el depurador pdb de Python en uWSGI, la ejecución no se detiene en el punto de interrupción, simplemente devuelve el trackback.

Aquí está el código:

def application(env, start_response): import pdb; pdb.set_trace() start_response(''200 OK'', [(''Content-Type'',''text/html'')]) return "Hello World"

así es como lo ejecuto:

uwsgi --http 127.0.0.1:7777 --wsgi-file uwsgi_test.py

y esto es lo que obtengo:

/home/andrey/Development/ttt/uwsgi_test.py(3)application() -> start_response(''200 OK'', [(''Content-Type'',''text/html'')]) (Pdb) Traceback (most recent call last): File "uwsgi_test.py", line 3, in application start_response(''200 OK'', [(''Content-Type'',''text/html'')]) File "uwsgi_test.py", line 3, in application start_response(''200 OK'', [(''Content-Type'',''text/html'')]) File "/usr/lib/python2.7/bdb.py", line 48, in trace_dispatch return self.dispatch_line(frame) File "/usr/lib/python2.7/bdb.py", line 67, in dispatch_line if self.quitting: raise BdbQuit bdb.BdbQuit [pid: 11421|app: 0|req: 1/1] 127.0.0.1 () {32 vars in 366 bytes} [Sun Aug 25 13:12:06 2013] GET / => generated 0 bytes in 63 msecs (HTTP/1.1 500) 0 headers in 0 bytes (0 switches on core 0)


Al ser un servidor, uWSGI cierra el stdin (de hecho, lo remapsa a / dev / null).

Si necesita stdin (como cuando necesita un depurador de terminal) agregue:

--honour-stdin


Instalar el depurador remoto.

pip install remote-pdb

Establecer punto de interrupción en algún lugar de la aplicación.

from remote_pdb import RemotePdb RemotePdb(''127.0.0.1'', 4444).set_trace()

Conectarse al depurador remoto a través de telnet

# Restart uwsgi to pick up changes ... # Trigger the breakpoint, (any action to evaluate the set_trace call) ... # Connect to debugger telnet 127.0.0.1 4444

Es probable que desee ejecutar uWSGI con un solo trabajador / subproceso, para que los depuradores remotos no se pisen entre sí.


prueba esto

uwsgi --http 127.0.0.1:7777 --wsgi-file uwsgi_test.py --logto /path/to/log/log.txt