Mit dem folgenden Python 3-Code:Http: auf localhost vs 127.0.0.1 "Kann nicht angeforderte Adresse zuweisen"
from http.server import HTTPServer, SimpleHTTPRequestHandler
s = HTTPServer(('localhost', 0), SimpleHTTPRequestHandler)
ich die folgende Fehlermeldung erhalten:
Traceback (most recent call last):
File "repro.py", line 2, in <module>
s = HTTPServer(('localhost', 0), SimpleHTTPRequestHandler)
File "/usr/lib/python3.6/socketserver.py", line 453, in __init__
self.server_bind()
File "/usr/lib/python3.6/http/server.py", line 136, in server_bind
socketserver.TCPServer.server_bind(self)
File "/usr/lib/python3.6/socketserver.py", line 467, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 99] Cannot assign requested address
Ich habe bemerkt, dass 3 Dinge werden dies verhindern:
- WiFi deaktivieren.
- Wechsel zu einem anderen WLAN-Netzwerk (von meinem Heimrouter zu meinem Telefon).
- Ändern
'localhost'
im Code zu'127.0.0.1'
.
Also meine Frage ist, was hier schief läuft? Warum schlägt dieser Code fehl, wenn es funktioniert?
P.S. Here is ip a's output when connected to my home router und here's its output when tethering.
Haben Sie einen anderen verfügbaren Port ausprobiert? Port 0 ist ein System oder ein bekannter Port, wie [hier] (https://en.wikipedia.org/wiki/Registered_port) beschrieben. –
Wenn der Wechsel von 'localhost' nach' 127.0.0.1' es behebt, klingt es wie ein DNS-Problem. Was zeigt 'dig localhost'? – Barmar
Ihre 'ip a' Ausgabe fehlt die wichtigen Bits, d. H. Die Schnittstelle' lo'. Bitte fügen Sie diese Informationen hinzu. –