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

python · Python

संदेश

PermissionError: [Errno 13] Permission denied

इसका मतलब

operating system ने उस रास्ते पर वह काम करने से मना कर दिया। आप /var/log या /usr जैसी किसी और की जगह पर लिख रहे थे, या container में ऐसे mounted volume पर जिसका UID container के उपयोगकर्ता से मेल नहीं खाता, या — जो चूक जाता है — आपके पास फ़ाइल की नहीं, उस डायरेक्टरी की लिखने की अनुमति नहीं है, और नई फ़ाइल बनाने के लिए वही चाहिए। पहले ls -ld से स्वामी और mode देखें, और sudo की ओर बढ़ने से पहले रास्ते को ऐसी जगह ले जाने पर विचार करें जहाँ आप लिख सकते हैं: sudo से बनी फ़ाइल अगली बार sudo के बिना खोलने पर वही त्रुटि देगी।

सुधार

ls -ld /var/log/app.log
कौन देता है
python
Python
18

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

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

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

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

Q. “PermissionError: [Errno 13] Permission denied” का क्या मतलब है?

operating system ने उस रास्ते पर वह काम करने से मना कर दिया। आप /var/log या /usr जैसी किसी और की जगह पर लिख रहे थे, या container में ऐसे mounted volume पर जिसका UID container के उपयोगकर्ता से मेल नहीं खाता, या — जो चूक जाता है — आपके पास फ़ाइल की नहीं, उस डायरेक्टरी की लिखने की अनुमति नहीं है, और नई फ़ाइल बनाने के लिए वही चाहिए। पहले ls -ld से स्वामी और mode देखें, और sudo की ओर बढ़ने से पहले रास्ते को ऐसी जगह ले जाने पर विचार करें जहाँ आप लिख सकते हैं: sudo से बनी फ़ाइल अगली बार sudo के बिना खोलने पर वही त्रुटि देगी।

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

ls -ld /var/log/app.log — चलाने से पहले ऊपर देख लें कि यह कमांड क्या फेंक देता है।

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

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

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