मुझे एक पाइथन वेब एप्लिकेशन को डिबग करने पर कोई जानकारी नहीं मिल रही है, विशेष रूप से वेब अनुरोध के निष्पादन के माध्यम से कदम उठाना।मैं एक पायथन वेब एप्लिकेशन को कैसे/डीबग कर सकता हूं?
क्या यह संभव नहीं है? यदि नहीं, क्यों नहीं?
मुझे एक पाइथन वेब एप्लिकेशन को डिबग करने पर कोई जानकारी नहीं मिल रही है, विशेष रूप से वेब अनुरोध के निष्पादन के माध्यम से कदम उठाना।मैं एक पायथन वेब एप्लिकेशन को कैसे/डीबग कर सकता हूं?
क्या यह संभव नहीं है? यदि नहीं, क्यों नहीं?
आप अपने कोड में
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 दबाकर निष्पादन फिर से शुरू होता है।
पायथन डेबबगर, import pdb; pdb.set_trace()
का उपयोग करें जहां आप डिबगिंग शुरू करना चाहते हैं, और आपका टर्मिनल उस पंक्ति में रुक जाएगा। अधिक यहाँ जानकारी: http://plone.org/documentation/kb/using-pdb
आप अपाचे और 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
आपको यहां modpython दस्तावेज़ों में दस्तावेज़ के रूप में PythonEnablePdb विकल्प को सक्षम करने की आवश्यकता हो सकती है - http://modpython.org/live/current/doc-html/directives.html#pythonenablepdb – Guruprasad
आप वेब अनुप्रयोग कैसे चल रहे हैं? – Mark