תקן שגיאת שקע פייתון 48



נסה את הכלי שלנו לביטול בעיות

שגיאת שקע 48 היא שגיאת פיתון אשר מופעלת כאשר התהליך מנסה לאגד את עצמו ליציאה שכבר נמצאת בשימוש.



שרתים



מה גורם לשגיאת 'socket.error: [Errno 48] כתובת כבר בשימוש'?

לאחר מחקר קצר מצאנו את הסיבות לכך:



  • תהליך מאוגד לנמל: בכל פעם שנוצר תהליך בשרת, יציאה משמשת אותו לתקשורת עם האינטרנט. הנמל הוא כמו מארח שיכול לבדר אורח אחד בכל פעם. עם זאת, אם אינך מציין יציאה, השרת פשוט יוצר אותה ביציאת ברירת המחדל. בפעם הבאה שאתה יוצר תהליך, יש לציין יציאה מכיוון שיציאת ברירת המחדל כבר נמצאת בשימוש.

פתרון 1: ציון מספר היציאה

השגיאה מופעלת בעיקר כאשר אדם מנסה לקשור תהליך ספציפי ליציאת ברירת המחדל ויציאת ברירת המחדל כבר קשורה לתהליך אחר. לכן, בשלב זה, נפרט את היציאה עליה מוגבל התהליך.

  1. רוב הסיכויים שאתה משתמש בפקודה הבאה כדי ליצור תהליך.
    $ python -m SimpleHTTPServer
  2. במקום זאת, השתמש בפקודה זו כדי ליצור תהליך.
    $ python -m SimpleHTTPServer (מספר יציאה)
  3. המתן עד שייווצר התהליך ובדוק אם הבעיה נמשכת.

פתרון 2: שחרור הנמל

אם ה נמל כבר בשימוש בתהליך אחר, התהליך החדש לא יוכל לתפקד ביציאה זו. לכן, בשלב זה, נשחרר את הנמל על ידי סיום התהליך הקודם והפעלתו החדשה. בשביל זה:

  1. השתמש בפקודה הבאה כדי לרשום מספר תהליכים המשתמשים ביציאה ספציפית.
    $ ps -fA | grep python
  2. טיעון הפקודה ייראה בערך כמו השורות הבאות.
    601 88234 12788 0 21:53 ttys000 0: 00.16 python -m SimpleHTTPServer
  3. מתוך כך, קוד התהליך שנשתמש בו כדי להרוג הוא '88234'.
  4. השתמש בפקודה הבאה כדי להרוג את התהליך.
    להרוג 88234

    לחלופין, אתה יכול להשתמש בפקודה הבאה כדי להרוג אותה.



    sudo kill -9 PID
  5. כעת תוכל לקשור את התהליך ליציאה זו באמצעות הפקודה הבאה.
    $ python -m SimpleHTTPServer (מספר יציאה)
  6. התהליך ייווצר כעת.

פתרון 3: הפעלה מחדש של פטל פי (רק עבור פטל פטל)

אתה יכול להיפטר משגיאה זו ב- פאי פטל על ידי הפעלה מחדש של ה- Raspberry Pi או על ידי הריגת מעטפת המסוף. Raspberry Pi לפעמים אינו מסוגל להרוג את התהליכים באופן אוטומטי ומפעיל שגיאה זו בגלל התהליכים הקודמים שכבר פעלו ביציאות.

דקה קריאה