2010-08-09 7 views
5

मुझे एक पाइथन वेब एप्लिकेशन को डिबग करने पर कोई जानकारी नहीं मिल रही है, विशेष रूप से वेब अनुरोध के निष्पादन के माध्यम से कदम उठाना।मैं एक पायथन वेब एप्लिकेशन को कैसे/डीबग कर सकता हूं?

क्या यह संभव नहीं है? यदि नहीं, क्यों नहीं?

+0

आप वेब अनुप्रयोग कैसे चल रहे हैं? – Mark

उत्तर

9

आप अपने कोड में

import pdb 
pdb.set_trace() 

डाल, तो वेब एप्लिकेशन set_trace को क्रियान्वित करने पर एक pdb डिबगर सत्र के लिए छोड़ देंगे।

इसके अलावा उपयोगी,

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

जो आप अजगर दुभाषिया के लिए चला जाता है है। Ctrl-d दबाकर निष्पादन फिर से शुरू होता है।

फिर भी अधिक उपयोगी,

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

जो आपको एक IPython सत्र में चला जाता है (यह मानते हुए आप IPython स्थापित किया है) है। यहां भी, Ctrl-d दबाकर निष्पादन फिर से शुरू होता है।

0

पायथन डेबबगर, import pdb; pdb.set_trace() का उपयोग करें जहां आप डिबगिंग शुरू करना चाहते हैं, और आपका टर्मिनल उस पंक्ति में रुक जाएगा। अधिक यहाँ जानकारी: http://plone.org/documentation/kb/using-pdb

3

आप अपाचे और mod_wsgi या mod_python के माध्यम से अपने वेब अनुप्रयोग चला रहे हैं, दोनों pdb साथ डिबगिंग के माध्यम से कदम के लिए कुछ सहायता प्रदान करते हैं। यह चाल है कि आपको -एक्स ध्वज के साथ अग्रभूमि मोड में अपाचे चलाने की ज़रूरत है।

मेरी Gentoo प्रणाली पर मैं के साथ ऐसा कर (यह मूलतः एक ही आदेश अपाचे init स्क्रिप्ट की जगह -X के साथ शुरू -k का उपयोग करता है):

/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

आपको यहां modpython दस्तावेज़ों में दस्तावेज़ के रूप में PythonEnablePdb विकल्प को सक्षम करने की आवश्यकता हो सकती है - http://modpython.org/live/current/doc-html/directives.html#pythonenablepdb – Guruprasad

संबंधित मुद्दे