2010-08-09 16 views

Odpowiedz

9

Jeśli umieścisz

import pdb 
pdb.set_trace() 

w kodzie, aplikacja internetowa spadnie do pdb sesji debuggera po wykonaniu set_trace.

także przydatny jest

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

który spada do interpretera Pythona. Naciśnięcie Ctrl-d wznawia wykonywanie.

Jeszcze bardziej przydatna jest

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

który spada Ci na sesji ipython (zakładając, że masz zainstalowaną ipython). Tutaj również naciśnięcie Ctrl-d wznawia wykonywanie.

3

Jeśli używasz aplikacji internetowych poprzez apache i mod_wsgi lub mod_python zarówno zapewnić pewne wsparcie dla kroku przez debugowania z WPB. Sztuczka polega na tym, że musisz uruchomić apache w trybie pierwszego planu z flagą -X.

W moim systemie Gentoo zrobić to z (to jest w zasadzie to samo polecenie skrypt apache startowych używa zastępując -k start z -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 
+0

Może być również konieczne włączenie opcji PythonEnablePdb zgodnie z dokumentacją w dokumentacji modpython tutaj - http://modpython.org/live/current/doc-html/directives.html#pythonenablepdb – Guruprasad

Powiązane problemy