Как мне пройти / отладить веб-приложение на Python? - PullRequest
5 голосов
/ 09 августа 2010

Кажется, я не могу найти какую-либо информацию об отладке веб-приложения на Python, в частности, о выполнении веб-запроса.

это просто невозможно? если нет, то почему?

Ответы [ 3 ]

11 голосов
/ 09 августа 2010

Если поставить

import pdb
pdb.set_trace()

в вашем коде веб-приложение перейдет в сеанс отладчика pdb после выполнения set_trace.

Также полезно, это

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

, который переводит вас в интерпретатор python. Нажатие Ctrl-d возобновляет выполнение.

Еще полезнее, это

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

, который переводит вас в сеанс IPython (при условии, что вы установили IPython). Здесь также нажатие Ctrl-d возобновляет выполнение.

3 голосов
/ 09 августа 2010

Если вы запускаете ваше веб-приложение через apache и mod_wsgi или mod_python , оба предоставляют некоторую поддержку для пошаговой отладки с помощью pdb. Хитрость в том, что вы должны запускать apache в режиме переднего плана с флагом -X.

В моей системе Gentoo я делаю это (по сути, это та же команда, которую использует сценарий apache init, заменяя -k start на -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 голосов
/ 09 августа 2010

используйте Python Debbuger, import pdb; pdb.set_trace() именно там, где вы хотите начать отладку, и ваш терминал остановится в этой строке. Больше информации здесь: http://plone.org/documentation/kb/using-pdb

...