Nie mogę znaleźć żadnych informacji na temat debugowania aplikacji internetowej Pythona, szczególnie przechodząc przez wykonanie żądania WWW.Jak przejść/debugować aplikację internetową Pythona?
jest to po prostu niemożliwe? jeśli nie, dlaczego nie?
Nie mogę znaleźć żadnych informacji na temat debugowania aplikacji internetowej Pythona, szczególnie przechodząc przez wykonanie żądania WWW.Jak przejść/debugować aplikację internetową Pythona?
jest to po prostu niemożliwe? jeśli nie, dlaczego nie?
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.
używać Debugera Python, import pdb; pdb.set_trace()
dokładnie tam, gdzie chcesz rozpocząć debugowanie, a twój terminal zatrzyma się w tej linii. Więcej informacji tutaj: http://plone.org/documentation/kb/using-pdb
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
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
Jak się uruchamiając aplikację internetową? – Mark