Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to debug python application under uWSGI?

Tags:

python

uwsgi

When I'm trying to use python pdb debugger under uWSGI, the execution doesn't stop on breakpoint, it just return trackback.

here is the code:

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

this is how I run it:

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

and this is what I get:

/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) 
like image 503
Anderson Avatar asked Aug 25 '13 10:08

Anderson


1 Answers

Being a server, uWSGI closes the stdin (effectively it remaps it to /dev/null).

If you need stdin (as when you need a terminal debugger) add:

--honour-stdin 
like image 106
roberto Avatar answered Sep 21 '22 13:09

roberto