Beheben Sie den Python Socket-Fehler 48
Socket-Fehler 48 ist ein Python-Fehler, der ausgelöst wird, wenn der Prozess versucht, sich an einen bereits verwendeten Port zu binden.
Was verursacht den Fehler "socket.error: [Errno 48] Adresse wird bereits verwendet"?
Nach kurzer Recherche fanden wir folgende Ursachen:
Lösung 1: Angeben der Portnummer
Der Fehler wird meistens ausgelöst, wenn eine Person versucht, einen bestimmten Prozess an den Standardport zu binden, und der Standardport bereits an einen anderen Prozess gebunden ist. Daher geben wir in diesem Schritt den Port an, an den der Prozess gebunden werden soll.
- Möglicherweise verwenden Sie den folgenden Befehl, um einen Prozess zu erstellen.
$ python -m SimpleHTTPServer
- Verwenden Sie stattdessen diesen Befehl, um einen Prozess zu erstellen.
$ python -m SimpleHTTPServer (Portnummer)
- Warten Sie, bis der Prozess erstellt wurde, und prüfen Sie, ob das Problem weiterhin besteht.
Lösung 2: Freigeben des Ports
Wenn die Hafen Wird der neue Prozess bereits von einem anderen Prozess verwendet, kann er an diesem Port nicht funktionieren. Daher werden wir in diesem Schritt den Port freigeben, indem wir den vorherigen Prozess beenden und dann den neuen ausführen. Dafür:
- Verwenden Sie den folgenden Befehl, um eine Reihe von Prozessen über einen bestimmten Port aufzulisten.
$ ps -fA | Grep Python
- Das Befehlsargument sieht ungefähr so aus wie in den folgenden Zeilen.
601 88234 12788 0 9:53 PM ttys000 0: 00.16 python -m SimpleHTTPServer
- Aus diesem Grund lautet der Prozesscode, den wir zum Töten verwenden, "88234".
- Verwenden Sie den folgenden Befehl, um den Prozess abzubrechen.
töte 88234
Alternativ können Sie den folgenden Befehl verwenden, um es zu beenden.
sudo kill -9 PID
- Sie können den Prozess jetzt mit dem folgenden Befehl an diesen Port binden.
$ python -m SimpleHTTPServer (Portnummer)
- Der Prozess wird nun erstellt.
Lösung 3: Neustart von Raspberry Pi (nur für Raspberry Pi)
Sie können diesen Fehler am beseitigen Himbeer-Pi durch Neustart des Raspberry Pi oder durch Beenden der Terminal-Shell. Der Raspberry Pi kann die Prozesse manchmal nicht automatisch beenden und löst diesen Fehler aus, da die vorherigen Prozesse bereits auf den Ports ausgeführt wurden.