Løs Python Socket Error 48
Socket Error 48 er en pythonfeil som utløses når prosessen prøver å binde seg til en port som allerede er i bruk.
Hva forårsaker feilmeldingen “socket.error: [Errno 48] Address allerede i bruk?
Etter kort forskning fant vi årsakene til å være:
Løsning 1: Spesifisere portnummer
Feilen utløses for det meste når en person prøver å binde en bestemt prosess til standardporten og standardporten allerede er bundet til en annen prosess. Derfor vil vi i dette trinnet spesifisere porten som prosessen skal begrenses til.
- Sjansen er stor for at du bruker følgende kommando for å lage en prosess.
$ python -m SimpleHTTPServer
- I stedet for dette, bruk denne kommandoen for å lage en prosess.
$ python-m SimpleHTTPServer (portnummer)
- Vent til prosessen blir opprettet, og sjekk om problemet vedvarer.
Løsning 2: Frigjør porten
Hvis den havn er allerede i bruk av en annen prosess, vil den nye prosessen ikke kunne fungere på den porten. Derfor vil vi i dette trinnet frigjøre havnen ved å avslutte den forrige prosessen og deretter kjøre den nye. For det:
- Bruk følgende kommando for å liste opp et antall prosesser som bruker en bestemt port.
$ ps -fA | grep python
- Kommandoargumentet vil se ut som følgende linjer.
601 88234 12788 0 21:53 ttys000 0: 00.16 python -m SimpleHTTPServer
- Ut av dette er prosesskoden som vi vil bruke til å drepe “88234”.
- Bruk følgende kommando for å drepe prosessen.
drep 88234
Alternativt kan du bruke følgende kommando for å drepe den.
sudo kill -9 PID
- Du kan nå binde prosessen til denne porten ved å bruke følgende kommando.
$ python-m SimpleHTTPServer (portnummer)
- Prosessen vil nå bli opprettet.
Løsning 3: Start Raspberry Pi på nytt (bare for Raspberry Pi)
Du kan bli kvitt denne feilen den Bringebær Pi ved å starte Raspberry Pi på nytt eller ved å drepe terminalskallet. Raspberry Pi kan noen ganger ikke drepe prosessene automatisk og utløser denne feilen på grunn av de tidligere prosessene som allerede kjører på portene.