Wenn ich application.py einrichte, wird angezeigt, dass socket.error: [Errno 98] Adresse bereits verwendet wird.
Traceback (most recent call last):
File "application.py", line 121, in <module>
main()
File "application.py", line 117, in main
http_server.listen(options.port)
File "/usr/local/lib/python2.7/site-packages/tornado-3.1-py2.7.egg/tornado/tcpserver.py", line 117, in listen
sockets = bind_sockets(port, address=address)
File "/usr/local/lib/python2.7/site-packages/tornado-3.1-py2.7.egg/tornado/netutil.py", line 90, in bind_sockets
sock.bind(sockaddr)
File "/usr/local/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
socket.error: [Errno 98] Address already in use
python
python-2.7
Emuu
quelle
quelle
netstat
.address
und geben Sie uns bitte mehr Code.sudo lsof -t -i tcp:8000 | xargs kill -9
Antworten:
Es gibt offensichtlich einen anderen Prozess, der den Port abhört. Sie können diesen Vorgang mit dem folgenden Befehl herausfinden:
$ lsof -i :8000
oder ändern Sie den Port Ihrer Tornado-App. Tornados Fehlerinfo nicht explizit dazu.
quelle
sudo
und Port 5000 (für eine Flask-App), z. B.sudo lsof -i :5000
um den Prozess zu erkennen, der auf dem Port lauscht, und dannsudo kill -9 <process_id>
sudo lsof -i :8000
) ausgeführt habe, wird nichts angezeigt , aber es wird immer noch der gleiche Fehler angezeigt. :(netstat
oderlsof
wenn Sie ein Skript testen / neu starten, das einen Aufruf ausführtsocket.bind()
, stellen Sie möglicherweise fest, dass die Adresse auch nach Beendigung des betreffenden Prozesses noch eine Weile verwendet wird: Überprüfen Sie diese Antwort .