Python Django服务器错误:端口已在使用中

Python Django服务器错误:端口已在使用中,python,django,Python,Django,重新启动Django服务器会显示以下错误: this port is already running.... 这个问题特别发生在Ubuntu上,而不是其他操作系统上。如何释放端口以重新启动服务器?更简单的解决方案是键入sudo fuser-k 8000/tcp。 ps aux | grep -i manage after that you will see all process ubuntu@ip-10-154-22-113:~/django-apps/projectname$ ps

重新启动Django服务器会显示以下错误:

this port is already running....

这个问题特别发生在Ubuntu上,而不是其他操作系统上。如何释放端口以重新启动服务器?

更简单的解决方案是键入
sudo fuser-k 8000/tcp
ps aux | grep -i manage

after that you will see all process 


ubuntu@ip-10-154-22-113:~/django-apps/projectname$ ps aux | grep -i manage
ubuntu    3439  0.0  2.3  40228 14064 pts/0    T    06:47   0:00 python manage.py runserver project name
ubuntu    3440  1.4  9.7 200996 59324 pts/0    Tl   06:47   2:52 /usr/bin/python manage.py runserver project name
ubuntu    4581  0.0  0.1   7988   892 pts/0    S+   10:02   0:00 grep --color=auto -i manage


kill -9 process id


e.d kill -9 3440


`enter code here`after that :

python manage.py runserver project name
这将终止与端口8000关联的所有进程

编辑:


对于osx用户,您可以使用sudo lsof-t-i tcp:8000 | xargs kill-9

这是对Mounir答案的扩展。我为您添加了一个bash脚本。只需运行
/scripts/runserver.sh
而不是
/manage.py runserver
,它的工作方式将完全相同

#!/bin/bash

pid=$(ps aux | grep "./manage.py runserver" | grep -v grep | head -1 | xargs | cut -f2 -d" ")

if [[ -n "$pid" ]]; then
    kill $pid
fi

fuser -k 8000/tcp
./manage.py runserver
它将显示类似这样的内容

   Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State           PID/Program name    
tcp        0      0 127.0.0.1:8000          0.0.0.0:*               LISTEN      6599/python         
tcp        0      0 127.0.0.1:27017         0.0.0.0:*               LISTEN      -                   
tcp        0      0 192.168.124.1:53        0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      -                   
tcp6       0      0 :::3306                 :::*                    LISTEN     
因此,现在只需通过终止与Django/python相关联的进程来关闭已经在其中运行的Django/python端口

kill -9 PID
就我而言

kill -9 6599

现在运行您的Django应用程序。

我们不使用此命令{sudo lsof-t-i tcp:8000 | xargs kill-9},因为它关闭所有选项卡…您应该使用

ps-ef | grep python

kill-9进程标识

ps-ef | grep python(用id显示所有进程)

kill-911633 (11633是到:-/bin/python manage.py runserver的进程id)

ps aux|grep manage

ubuntu 3438 127.0.0 2.3 40256 14064 pts/0 T 06:47 0:00 python manage.py运行服务器


kill-9 3438

似乎是IDE、VSCode、Puppeter、nodemon、express等导致了这个问题,您在后台运行了一个进程,或者只是关闭了调试区域[浏览器、终端等],或者其他,总之,我以前回答过同样的问题, 给你,是的


默认情况下,runserver命令在端口8000的内部IP上启动开发服务器

如果要更改服务器的端口,请将其作为命令行参数传递。例如,此命令在端口8080上启动服务器:

python manage.py runserver 8080

对我来说,这是因为我在Postman中的API请求被我应用程序中的调试器断点截获。。。让请求挂起。如果我在杀死我的应用程序服务器之前取消了Postman中的请求,那么错误一开始就不会发生

-->因此,请尝试取消您在其他程序中发出的任何打开的请求


在macOS上,我一直在使用
sudo lsof-t-I tcp:8000 | xargs kill-9
来解决
error=该端口已在使用的问题。这也会关闭我的Postman应用程序,这就是为什么我的第一个解决方案更好的原因。

在Ctrl-C之后键入'fg'作为命令。
命令:
Fg将显示正在后台运行的。在此之后,Ctrl-C将停止它

fg
ctl-c


如果你在mac中遇到了这个问题,你只需要打开ActivityMonitor并强制执行python,然后再试一次


很抱歉在一篇旧帖子中发表评论,但它可能会帮助人们

只要在你的终端上输入这个

killall -9 python3

它将杀死您机器上运行的所有python3,并释放您的所有端口。当我在Django项目中工作时,请帮我一个大忙。

如果您正在使用VSC的屏幕终端,错误可能是因为您已经在其他shell中运行服务器


只需单击VSC终端标题中+符号左侧的dropbox,然后选择其他shell并检查服务器是否已经在那里运行。退出该服务器,即可启动另一台服务器。

单击屏幕截图中的箭头,找到已经运行Django服务器的bash。您收到此消息是因为您的服务器已在运行,并且您试图再次启动服务器


单击屏幕截图中的箭头,找到已经运行Django服务器的bash。您收到此消息是因为您的服务器已在运行,并且您试图再次启动服务器


那么,当服务器已经在运行时,您是否再次尝试启动服务器?这将不起作用,因为第一个将使用HTTP端口。在尝试再次运行之前(至少在同一个端口上运行),必须先终止或终止第一个实例。它可以工作,因为您已终止了当前正在运行的实例,这就是我说的您必须执行的操作。你不能让两个程序在同一个网络端口上监听,这很简单。因此,这是一个解决问题的办法,这不是一个真正的问题,只是一个事实。很抱歉,如果我变得坚强起来,我今天只是觉得有点暴躁/在mac上,您需要使用
sudo lsof-i tcp:8000
,然后删除显示的进程ID。因此,无论端口是什么,只要用端口替换8000,就会发生阻塞。我收到了这个错误,但我已经删除了端口上的所有内容。虽然这个代码片段可以解决问题,但确实有助于提高您的帖子质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。还请尽量不要用解释性注释挤满你的代码,这会降低代码和解释的可读性@Stephernauch,问题不是问谁在使用端口。问题是说明抛出了一个错误。这是一个关于如何修复该错误的解决方案。OP询问如何在端口8000上重新启动服务器,而不是在另一个端口上运行。为此,我们需要安装net-tools。不要使用ctrl+z停止服务器。正如这里提到的
Control+Z
将其分流到后台,挂起。这就是您的端口已在使用的原因。
lsof -t -i tcp:8000 | xargs kill -9
killall -9 python3