मैं डिबगिंग/विकास के लिए पाइथन की आत्मनिरीक्षण क्षमता का उपयोग करना चाहता हूं, लेकिन इसके लिए उचित टूल नहीं मिल रहा है।पायथन में इंटरैक्टिव डीबग के लिए सबसे अच्छा तरीका क्या है?
मुझे विशिष्ट स्थिति या विशिष्ट घटना (जैसे अपवाद) पर शैल (उदाहरण के लिए आईपीथन) में प्रवेश करने की आवश्यकता है, स्थानीय लोगों और शैल के ग्लोबल्स को फ्रेम के सेट पर सेट किया जा रहा है।
मेरा अपना त्वरित हैक यह वर्णन करने के लिए:
import inspect
from IPython.Shell import IPShellEmbed
def run_debug():
stack = inspect.stack()
frame = stack[1][0]
loc = frame.f_locals
glob = frame.f_globals
shell = IPShellEmbed()
shell(local_ns=loc, global_ns=glob)
run_debug() 'ब्रेकपाइंट' से कॉल अनुसार के साथ
या छोड़कर कोशिश /। लेकिन, जाहिर है, इसे थ्रेड किए गए ऐप्स के साथ काम करने के लिए पॉलिशिंग, एएसपी की बहुत जरूरत है।
winpdb कंसोल के साथ ब्रेकपॉइंट्स है, लेकिन मुझे इससे उचित पायथन शेल चलाने के लिए कोई रास्ता नहीं मिला, और eval()/exec() लंबे डीबग के लिए बहुत आसान नहीं हैं।
धन्यवाद, उनके प्रो संस्करण में वास्तव में कार्यक्षमता की आवश्यकता है और यह गोले चलाने से पहले प्रक्रिया निष्पादन रोकता है, इसलिए थ्रेडिंग समस्या नहीं है। काफी स्वामित्व वाला स्वामित्व है, लेकिन ऐसा लगता है कि आप क्या भुगतान कर रहे हैं। –
मुझे लगता है कि चार्ज करने के लाभों में से एक है - वे लोगों को किराए पर ले सकते हैं और * उन्हें * इस तरह की समस्याओं पर काम करने के लिए भुगतान कर सकते हैं;) बेशक यदि यह बहुत महंगा है तो आप हमेशा स्थानीय पायथन सम्मेलन के लिए चारों ओर देख सकते हैं और सुझाव देते हैं कि वे पूछें कुछ देने वाली प्रतियों के लिए विंग। उन्होंने हमें हर साल 3-4 दिया है जिसे हमने पूछा है, और मैंने उनके साथ सुनाई गई हर दूसरे व्यवहार को प्रभावशाली बना दिया है। –