होम·एरर संदेश

python · Python

संदेश

OSError: [Errno 98] Address already in use

इसका मतलब

bind इसलिए विफल हुआ कि उस port को कोई दूसरी प्रक्रिया पहले से पकड़े है। या तो पिछला server पूरी तरह मरा नहीं, या किसी auto-reloader ने दो प्रतियाँ चला दीं, या कोई Docker container वही port पहले से प्रकाशित कर रहा है। lsof -i :8000 वह PID बता देता है जो उसे पकड़े है, ताकि आप केवल उसे हटाएँ — kill -9 करने से पहले प्रक्रिया का नाम पढ़ लें। errno हर system में अलग है: Linux यहाँ 98 छापता है, macOS 48।

सुधार

lsof -i :8000
कौन देता है
python
Python
18

Python का traceback उत्तर को दो हिस्सों में बाँटता है — अंतिम पंक्ति बताती है कि क्या ग़लत हुआ, और उसके ऊपर के frames बताते हैं कि कहाँ — इसलिए केवल अंतिम पंक्ति पढ़ने पर नाम मिलता है और जगह छूट जाती है; और NoneType तथा KeyError जैसी "मान नहीं है" वाली त्रुटियों में कारण लगभग हमेशा उस frame से ऊपर होता है जहाँ गिरा।

एरर संदेश कैसे पढ़ें

  • पहली पंक्ति से पढ़ें। जितना नीचे जाएँगे उतना वह औज़ार के भीतर की बात है; कारण आम तौर पर सबसे ऊपर लिखा होता है।
  • फ़ाइल का नाम और पंक्ति संख्या दिखे तो वहीं से शुरू करें — stack का सबसे ऊपरी frame नहीं, बल्कि वह सबसे ऊपरी पंक्ति जिसमें आपकी लिखी फ़ाइल का नाम हो।
  • संदेश को जैसा है वैसा खोजें, पर पहले अपने paths और variable नाम हटा दें — वही खोज को अटकाते हैं।
  • वही स्थिति औज़ार के हर संस्करण में अलग शब्दों में आती है। नतीजे बेमेल लगें तो संस्करण संख्या भी जोड़ें।
  • कोई सुधार चिपकाने से पहले देख लें कि वह क्या फेंक देगा। इनमें कुछ पलटे नहीं जा सकते।

अक्सर पूछे जाने वाले सवाल

Q. “OSError: [Errno 98] Address already in use” का क्या मतलब है?

bind इसलिए विफल हुआ कि उस port को कोई दूसरी प्रक्रिया पहले से पकड़े है। या तो पिछला server पूरी तरह मरा नहीं, या किसी auto-reloader ने दो प्रतियाँ चला दीं, या कोई Docker container वही port पहले से प्रकाशित कर रहा है। lsof -i :8000 वह PID बता देता है जो उसे पकड़े है, ताकि आप केवल उसे हटाएँ — kill -9 करने से पहले प्रक्रिया का नाम पढ़ लें। errno हर system में अलग है: Linux यहाँ 98 छापता है, macOS 48।

Q. इसे कैसे ठीक करें?

lsof -i :8000 — चलाने से पहले ऊपर देख लें कि यह कमांड क्या फेंक देता है।

Q. यह कौन-सा औज़ार देता है?

python। यह Python में आता है, और संदेश 7 शब्दों का है।

साथ आने वाले एरर