अपने पायथन कोड को कैसे डिबग करें

काम करने वाला कोड लिखना तृप्ति की भावना लाता है। लेकिन जब आप त्रुटियों का सामना करते हैं तो यह अक्सर विपरीत होता है।

हालाँकि, डिबगिंग में आपके कोड में उन दोषों को दूर करना शामिल है जो आपके प्रोग्राम को उन तरीकों से व्यवहार करते हैं जो आप नहीं चाहते हैं।

और किसी भी अन्य प्रोग्रामिंग भाषा की तरह, पायथन के साथ कोडिंग करते समय त्रुटियां बहुमूल्य समय बर्बाद कर सकती हैं। दुर्भाग्य से, आप उनसे बच नहीं सकते। तो आप उन्हें कैसे समझ सकते हैं और उनसे कैसे निपट सकते हैं? ये कुछ बेहतरीन तरीके हैं जिनसे आप अपने पायथन कोड को डीबग कर सकते हैं।

पायथन अपवाद क्या हैं?

जब भी पायथन किसी कोड या कमांड की व्याख्या नहीं कर पाता है, तो यह एक अपवाद उठाता है। पायथन अपवाद त्रुटियों का एक समूह है जो तब उत्पन्न होता है जब पायथन आपके कोड को निष्पादित करता है।

पायथन कोशिश और ब्लॉक को छोड़कर त्रुटियों के लिए अपवाद उठाता है। निष्पादन योग्य आदेश आमतौर पर कोशिश ब्लॉक के अंदर होते हैं।

लेकिन जब कोशिश के अंदर का कोड विफल हो जाता है, तो पायथन को छोड़कर ब्लॉक के अंदर उन लोगों को निष्पादित करता है।

संक्षेप में, कीवर्ड को छोड़कर के अंदर स्टेटमेंट ट्राई ब्लॉक में अपवाद हैं, और पायथन उन्हें त्रुटियों के रूप में उठाता है।

कभी-कभी, एक कोशिश… ब्लॉक को छोड़कर कई अपवाद हो सकते हैं (कीवर्ड को छोड़कर )। हमेशा के लिए, यह त्रुटियों की एक श्रृंखला में परिणत होता है। और यह उन विशिष्ट विस्तृत त्रुटियों की व्याख्या करता है जिनका आप कभी-कभी पायथन में सामना करते हैं।

अपवाद तब उत्पन्न हो सकते हैं जब आप एक अंतर्निहित फ़ंक्शन, एक पुस्तकालय, या एक पायथन ढांचे का उपयोग करते हैं।

इसलिए भले ही आप सही सिंटैक्स लिखते हों, उन तरीकों के नियमों से खेलने में विफलता जिन्हें आप अपवादों में परिणाम का उपयोग करने का प्रयास कर रहे हैं, जो कई बार भारी हो सकता है।

उदाहरण के लिए, आपने कोड की केवल पाँच पंक्तियों के बारे में लिखा होगा, लेकिन पायथन लाइन 200 पर एक त्रुटि के साथ जाँच करता है।

ऐसा इसलिए होता है क्योंकि पायथन उन अपवादों को उठाता है जो आपके द्वारा उपयोग किए जा रहे पुस्तकालय, ढांचे, या अंतर्निहित विधि के स्रोत कोड के भीतर पूर्व-परिभाषित किए गए हैं।

सिंटैक्स त्रुटियाँError

हर बार जब आप कोई कोड या सिंटैक्स लिखते हैं तो पायथन एक सिंटैक्स त्रुटि उत्पन्न करता है जिसे वह नहीं पहचानता है। वे गहन अपवादों की तुलना में अधिक पता लगाने योग्य हैं।

यदि आप एक पायथन शुरुआत कर रहे हैं, तो आपको सिंटैक्स त्रुटियों के अधिक बार आने की संभावना है। लेकिन एक बार जब आप समझ जाते हैं कि उन्हें कैसे संभालना है, तो उनसे निपटना आसान है।

अपने पायथन कोड को कैसे डिबग करें

पायथन में कई अपवाद हैं। उनमें इंडेंटेशन, टाइप और नाम की त्रुटियां, आदि शामिल हो सकते हैं।

अपवाद एक पंक्ति या कोड के दोषपूर्ण ब्लॉक से निकल सकते हैं। दुर्भाग्य से, अपवादों से निपटने के लिए कोई विशिष्ट तरीके नहीं हैं। लेकिन आप उन्हें उदाहरणों और परियोजना प्रकार के आधार पर संभाल सकते हैं।

कुछ त्रुटियाँ एक साथ कई अपवाद भी उत्पन्न करती हैं। अंततः, वास्तविक जीवन के अनुप्रयोगों का निर्माण करते समय आपको इन त्रुटियों का अधिक बार सामना करना पड़ेगा।

हालांकि अपवाद निराशाजनक हैं, यदि आप धैर्य रखते हैं तो उन्हें पता लगाने और हल करने में ज्यादा समय नहीं लगता है।

आप पायथन को डीबग करने के लिए निम्न विधियों में से किसी एक या संयोजन का उपयोग कर सकते हैं।

1. त्रुटि विवरण की जाँच करें

पायथन त्रुटियों का इलाज करने के सर्वोत्तम तरीकों में से एक त्रुटि विवरण की जांच करना है। पायथन आमतौर पर इसे आपके त्रुटि आउटपुट की अंतिम पंक्ति पर बताता है।

उदाहरण के लिए, अनपेक्षित ईओएफ पार्स करते समय हमेशा एक लापता कोष्ठक से संबंधित होता है। हालाँकि, अमान्य सिंटैक्स कहीं गलत सिंटैक्स को दर्शाता है, जबकि जब आप किसी वर्ग या ऑब्जेक्ट से गलत फ़ंक्शन को कॉल करने का प्रयास करते हैं, तो AttributeError सामने आता है।

और भी बहुत से अपवाद हैं जो आप देख सकते हैं। केवल उस लाइन को ट्रेस करना जहां से वे आते हैं और आपके कोड को फिर से लिखना महत्वपूर्ण हो सकता है।

2. उस रेखा को ट्रेस करें जहां से त्रुटि आती है

शुक्र है, पायथन में त्रुटियां लाइन-बाउंड हैं। इसलिए यदि आपको कोई त्रुटि मिलती है, तो उस रेखा पर ध्यान दें, जिस पर पायथन इंगित कर रहा है।

उदाहरण के लिए, नीचे दिए गए उदाहरण में त्रुटि एक प्रकार की त्रुटि है क्योंकि कोड भिन्न डेटा प्रकारों (एक स्ट्रिंग और एक पूर्णांक) को संयोजित करने का प्रयास करता है।

हालाँकि, वह त्रुटि उदाहरण कोड में पंक्ति 2 की ओर इशारा करती है:

कोड:

 db = open("output.txt", "a")
a = "Hello"+1
b = "How do you do?"
db.write(a+", "+b+"
")

त्रुटि:

 raceback (most recent call last):
File "C:UsersOmisola IdowuDesktopLato
oup
ew.py", line 2, in
a = "Hello"+1
TypeError: can only concatenate str (not "int") to str

नीचे एक और त्रुटि उदाहरण देखें:

कोड:

 def findTotal(a):
for i in a
print(sum(i)*2)

त्रुटि:

 File "C:UsersOmisola IdowuDesktopLato
oup
ew.py", line 2
for i in a
^
SyntaxError: invalid syntax

इधर, अजगर, लाइन 2. यदि आप अजगर से परिचित हैं पर एक सिंटैक्स त्रुटि की ओर इंगित करता है याद आ रही पेट के बाहर पाने के बाद पाश के लिए आसान होना चाहिए।

3. कमांड लाइन पर ट्रेस विधि का लाभ उठाएं

जब आप बिल्ट-इन आईडीएलई का उपयोग करके पायथन को डीबग कर सकते हैं, तो आप बड़ी परियोजनाओं के साथ काम करते समय इसका उपयोग नहीं करेंगे।

तो पायथन को डिबग करने के सर्वोत्तम तरीकों में से एक कमांड लाइन इंटरफेस (सीएलआई) के माध्यम से है। यह जावास्क्रिप्ट में कंसोल.लॉग () चलाने का पर्याय है।

यदि आप कोड निष्पादन के दौरान किसी त्रुटि का सामना करते हैं, तो आप अपने CLI को स्पिन कर सकते हैं और ट्रेस कमांड का उपयोग करके दोषपूर्ण स्क्रिप्ट चला सकते हैं।

यह आपके कोड की प्रत्येक पंक्ति पर एक चेक चलाकर और जहां भी कोई समस्या मिलती है उसे तोड़कर काम करता है।

इस पद्धति का उपयोग करने के लिए, अपनी फ़ाइल को अपनी कमांड लाइन में इस तरह चलाएँ:

 python -m trace --trace file_name.py

हालांकि आपकी पूरी स्क्रिप्ट को इस तरह चलाना व्यावहारिक नहीं है, आप एक अलग पायथन फ़ाइल बना सकते हैं, कोड के प्रत्येक ब्लॉक (एक समय में एक) को उस फ़ाइल में पेस्ट कर सकते हैं, और फिर प्रत्येक कोड को अलग से चला सकते हैं।

यद्यपि यह वह नहीं है जो आप इकाई परीक्षण के दौरान करते हैं, यह अभी भी इकाई डिबगिंग का एक रूप है।

4. अपने कोड का परीक्षण करें

यूनिट परीक्षण में आपके कोड में कुछ इकाइयों (ब्लॉक या लाइनों) को अलग करना और प्रदर्शन, दक्षता और शुद्धता जैसे मीट्रिक के लिए उनका परीक्षण करना शामिल है। आप इसे प्रोग्रामिंग में गुणवत्ता आश्वासन के रूप में सोच सकते हैं।

अपवादों के अलावा, कभी-कभी एक गलत बूलियन के कारण एक बग हो सकता है, जो एक त्रुटि नहीं उठा सकता है, लेकिन आपके प्रोग्राम को परिनियोजन में असामान्य रूप से व्यवहार करने का कारण बन सकता है।

इकाई परीक्षण कई डिबगिंग तकनीकों का उपयोग करता है ताकि आपके कोड को सही करने के लिए एसेट फ़ंक्शन का उपयोग करके परीक्षण और प्रोफाइल किया जा सके। यह आपके कोड को चलने में लगने वाले समय आदि की भी जांच कर सकता है।

उत्पादन के दौरान, आप एक अलग पायथन फ़ाइल बना सकते हैं, जिसे आमतौर पर test.py कहा जाता है, और उस फ़ाइल के अंदर अपने कोड की प्रत्येक इकाई का परीक्षण करें।

एक इकाई परीक्षण इस तरह दिख सकता है:

 data = {
"guitars":[
{"Seagull":"$260"},
{"Fender":"$700"},
{"Electric-acoustic":"$600"}
]
}
if len(data["guitars"])==2:
for i in data["guitars"]:
print(i)
assert len(data["guitars"])==2, "Length less than what's required, should be 3"

क्योंकि सरणी की लंबाई 3 से कम है, पायथन एक अभिकथन त्रुटि उठाता है:

 AssertionError: Length less than what's required, should be 3

5. लॉगिंग का प्रयोग करें

लॉग का उपयोग करके त्रुटियों की जांच करना आपके कोड को डीबग करने का एक और तरीका है। पायथन में एक अंतर्निहित लॉगिंग लाइब्रेरी है । यह आपके प्रोग्राम को कंसोल में कैसे चलता है, इसका विवरण देकर काम करता है।

संबंधित: पायथन में स्वचालित ईमेल संदेश कैसे भेजें

हालाँकि, लॉगिंग तब अधिक सहायक होती है जब आपका प्रोग्राम अपने परिनियोजन चरण में होता है। लेकिन जब आप अपने ऐप के परिनियोजन में होने पर कंसोल में लॉग नहीं देख सकते हैं, तो आप अपने कोड लॉग को ईमेल के रूप में प्राप्त करने के लिए एक साधारण मेल ट्रांसफर प्रोटोकॉल (एसएमटीपी) सेट कर सकते हैं।

इस तरह आप जानते हैं कि आपका प्रोग्राम किस बिंदु पर विफल हो जाता है।

6. मानक पायथन डीबगर का प्रयोग करें

पायथन में एक लोकप्रिय ऑनबोर्ड डिबगर है जिसे pdb कहा जाता है। क्योंकि यह अंतर्निर्मित है, बस अपनी परीक्षण फ़ाइल में पीडीबी आयात करना काम करता है।

पीडीबी मॉड्यूल अचानक समाप्त होने वाले क्रैशिंग प्रोग्राम को डीबग करने के लिए उपयोगी है। मॉड्यूल आपके कोड पोस्ट-मॉर्टम को क्रियान्वित करके काम करता है (आपके प्रोग्राम के क्रैश होने के बाद भी)।

आप pdb का उपयोग करके पूरी पायथन फ़ाइल या उसकी इकाई चला सकते हैं। एक बार पीडीबी शुरू होने के बाद, आप इसका उपयोग अपने कोड की प्रत्येक पंक्ति के माध्यम से यह देखने के लिए कर सकते हैं कि त्रुटि कहां है।

pdb के साथ आरंभ करने के लिए, अपनी पायथन फ़ाइल खोलें और डीबगर को इस तरह आरंभ करें:

 import pdb; pdb.set_trace()

फिर आप अपनी पायथन फ़ाइल को सीएलआई के माध्यम से चला सकते हैं:

 Python Your_Python_file.py

आप अपने सीएमडी में पीडीबी मॉड्यूल को कोष्ठक में देखेंगे। pdb के लिए उपलब्ध कमांड की सूची देखने के लिए h टाइप करें:

 (pdb) h

आउटपुट इस तरह दिखता है:

उदाहरण के लिए, दीक्षा के बिंदु से शुरू होकर अपना कोड लाइन-बाय-लाइन सूचीबद्ध करें:

 (pdb) l

7. IDEs का उपयोग करके डीबग करें

एकीकृत विकास वातावरण (आईडीई) भी आपकी पायथन लिपि को डीबग करने के लिए मूल्यवान उपकरण हैं।

विजुअल स्टूडियो कोड , उदाहरण के लिए, इसकी रन और डिबग सुविधा और पाइलेंस नामक एक भाषा समर्थन प्लगइन के साथ, आपको अपना कोड डीबग मोड में चलाने की अनुमति देता है। Pycharm एक और उत्कृष्ट IDE है जो आपके कोड में दोष खोजने में आपकी सहायता कर सकता है।

संबंधित: आपका ऐप लिखने के लिए सर्वश्रेष्ठ मुफ्त कोड संपादक

एक्लिप्स आपकी पायथन स्क्रिप्ट को आसानी से डिबग करने के लिए पाइदेव नामक एक तृतीय-पक्ष प्लगइन भी प्रदान करता है।

8. समाधान के लिए इंटरनेट पर खोजें

इंटरनेट भी एक विश्वसनीय संसाधन है जिसे आप अपने पायथन कोड के साथ समस्याओं को हल करने के लिए देख सकते हैं, पायथन डेवलपर्स समुदाय के लिए धन्यवाद।

उदाहरण के लिए, स्टैक ओवरफ्लो एक लोकप्रिय कोडिंग समुदाय है जहां आप प्रश्न पूछ सकते हैं और उत्तर प्राप्त कर सकते हैं। आप यह भी पाएंगे कि जिन अधिकांश समस्याओं का आप सामना कर सकते हैं, उनके समाधान पूरे प्लेटफॉर्म पर पहले से ही हैं।

इसके अतिरिक्त, YouTube में बहुत सारे कोडिंग वीडियो हैं जिनका आप लाभ उठा सकते हैं।

डिबगिंग त्रुटियों से छुटकारा पाने से परे है

त्रुटियां कोडिंग का एक अभिन्न अंग हैं, लेकिन उन्हें कैसे संभालना है यह जानना आपको सबसे अलग बनाता है और आपको तेजी से कोड करने में मदद करता है। हालाँकि, डिबगिंग त्रुटियों को दूर करने से परे है। कभी-कभी आपके पास एक काम करने वाला कोड भी हो सकता है जो खराब प्रदर्शन करता है; पिजनहोल को ठीक करने के तरीकों की तलाश करना भी डिबगिंग का एक हिस्सा है।