python · Python
संदेश
TabError: inconsistent use of tabs and spaces in indentation
इसका मतलब
एक ही block के भीतर tab और space मिल गए हैं, इसलिए Python तय नहीं कर पाता कि कौन सी पंक्ति ज़्यादा गहरी है। यह तब होता है जब आप tab डालने वाले editor से कोड चिपकाते हैं, या दो लोग अलग-अलग सेटिंग से वही फ़ाइल छूते हैं; परदे पर पंक्तियाँ एक जैसी दिखती हैं, आँख से नहीं मिलेगा। python -m tabnanny app.py गड़बड़ पंक्तियों के नंबर छापता है, और बाक़ी काम editor में उस फ़ाइल को पूरी तरह चार space पर लाना है।
सुधार
python -m tabnanny app.py- कौन देता है
- python
- Python
- 18
Python का traceback उत्तर को दो हिस्सों में बाँटता है — अंतिम पंक्ति बताती है कि क्या ग़लत हुआ, और उसके ऊपर के frames बताते हैं कि कहाँ — इसलिए केवल अंतिम पंक्ति पढ़ने पर नाम मिलता है और जगह छूट जाती है; और NoneType तथा KeyError जैसी "मान नहीं है" वाली त्रुटियों में कारण लगभग हमेशा उस frame से ऊपर होता है जहाँ गिरा।
एरर संदेश कैसे पढ़ें
- पहली पंक्ति से पढ़ें। जितना नीचे जाएँगे उतना वह औज़ार के भीतर की बात है; कारण आम तौर पर सबसे ऊपर लिखा होता है।
- फ़ाइल का नाम और पंक्ति संख्या दिखे तो वहीं से शुरू करें — stack का सबसे ऊपरी frame नहीं, बल्कि वह सबसे ऊपरी पंक्ति जिसमें आपकी लिखी फ़ाइल का नाम हो।
- संदेश को जैसा है वैसा खोजें, पर पहले अपने paths और variable नाम हटा दें — वही खोज को अटकाते हैं।
- वही स्थिति औज़ार के हर संस्करण में अलग शब्दों में आती है। नतीजे बेमेल लगें तो संस्करण संख्या भी जोड़ें।
- कोई सुधार चिपकाने से पहले देख लें कि वह क्या फेंक देगा। इनमें कुछ पलटे नहीं जा सकते।
अक्सर पूछे जाने वाले सवाल
Q. “TabError: inconsistent use of tabs and spaces in indentation” का क्या मतलब है?
एक ही block के भीतर tab और space मिल गए हैं, इसलिए Python तय नहीं कर पाता कि कौन सी पंक्ति ज़्यादा गहरी है। यह तब होता है जब आप tab डालने वाले editor से कोड चिपकाते हैं, या दो लोग अलग-अलग सेटिंग से वही फ़ाइल छूते हैं; परदे पर पंक्तियाँ एक जैसी दिखती हैं, आँख से नहीं मिलेगा। python -m tabnanny app.py गड़बड़ पंक्तियों के नंबर छापता है, और बाक़ी काम editor में उस फ़ाइल को पूरी तरह चार space पर लाना है।
Q. इसे कैसे ठीक करें?
python -m tabnanny app.py — चलाने से पहले ऊपर देख लें कि यह कमांड क्या फेंक देता है।
Q. यह कौन-सा औज़ार देता है?
python। यह Python में आता है, और संदेश 9 शब्दों का है।