You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关闭终端后重启Django服务器提示端口被占用,如何解决?

解决Django服务器端口被占用(Error: That port is already in use)的问题

别急,这个问题其实超常见——你直接关掉运行服务器的终端窗口时,Django的服务器进程并没有正常退出,它还在后台偷偷占用着8000端口呢。下面分操作系统给你讲具体的解决办法:

macOS 或 Linux 系统

  • 第一步:找到占用8000端口的进程ID(PID)
    打开新终端,运行以下命令之一:

    lsof -i :8000
    

    或者

    netstat -tulpn | grep :8000
    

    执行后你会看到类似这样的输出,其中PID列的数字就是你要找的进程号:

    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    python 1234 yourname 4u IPv4 12345 0t0 TCP *:8000 (LISTEN)

  • 第二步:强制终止这个进程
    把上面找到的PID替换到命令里,比如PID是1234,就运行:

    kill -9 1234
    

    这个命令会强制终止占用端口的进程,之后再运行python manage.py runserver就正常了。

Windows 系统

  • 第一步:找到占用8000端口的进程ID(PID)
    打开命令提示符(CMD)或PowerShell,运行:

    netstat -ano | findstr :8000
    

    输出里最后一列的数字就是PID,比如:

    TCP 127.0.0.1:8000 0.0.0.0:0 LISTENING 1234

  • 第二步:强制结束进程
    把PID替换到命令中,运行:

    taskkill /F /PID 1234
    

    /F参数表示强制终止,执行完之后再启动服务器就没问题了。

临时应急方案

如果你懒得找进程,也可以直接指定其他端口启动Django服务器,比如用8001端口:

python manage.py runserver 8001

之后访问http://127.0.0.1:8001/就能正常打开网站了,不过这只是临时办法,还是建议把占用8000端口的进程杀掉,避免后续再遇到同样问题。

内容的提问来源于stack exchange,提问作者Justin

火山引擎 最新活动