尝试运行Flask应用程序会显示“地址已在使用中”

时间:2015-12-24 21:18:18

标签: python flask

我最近更新了我的应用并尝试运行它,并收到以下有关“地址已在使用中”的错误。这是什么意思,我该如何解决?

    A       B    C
0   foo     2    2
1   foo     4    2
2   foo     4    2
3   foo     2    2
4   bar     5    1
5   bar     4    1
6   bar     3    1
7   bar     2    1

7 个答案:

答案 0 :(得分:9)

这意味着有另一个服务正在使用该端口(在这种情况下为Set oFind = Cells.Find("dummy", , , xlWhole) )。也许是因为你忘了关闭另一个正在运行的Flask应用程序而且它正在使用8080端口。

但是,您可以更改正在使用的端口,例如将其更改为8080,如下所示:

4444

但无论如何,我想你想知道哪个程序正在使用那个部分,如果它不是你的程序。您可以使用nmapnetcat GNU程序进行检查。

以下是if __name__=="__main__": app.run(host=os.getenv('IP', '0.0.0.0'), port=int(os.getenv('PORT', 4444))) 方式(from here):

netcat

当你得到它时,我建议手动停止它(例如,如果它是$ sudo netstat -nlp | grep 8080 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 125004/nginx 或其他HTTP服务器,然后通过nginx命令或service停止它,如果你是使用systemd Linux)

你也可以通过命令systemctl杀死它:

kill

您也可以通过kill <pid> killall将其删除,它使用进程名称而不是它的pid:

pkill

答案 1 :(得分:3)

尝试使用此命令杀死服务器上正在运行的所有其他进程

  

sudo热熔器-k xxxx / tcp

用您的端口名替换xxxx

答案 2 :(得分:3)

我有同样的问题。

我列出了所有使用命令运行的应用程序

sudo lsof -i -P -n | grep LISTEN

还有另一个使用相同端口的应用程序。

停止其他应用程序后,可以启动Flask应用程序。

答案 3 :(得分:2)

您只需使用run函数的host和port参数来设置另一个主机和端口。以便您可以测试应用程序。

if __name__=="__main__":
    app.run(host='127.0.0.9',port=4455,debug=True) 

答案 4 :(得分:0)

您可以使用以下命令获取所有正在运行的具有python关键字的进程的pid:

  

ps -fA | grep python

获取pid后使用kill命令如下:

  

kill -9 pid

运行上面两个命令后,现在运行烧瓶应用程序,它将正常工作

答案 5 :(得分:0)

尝试重新启动终端/外壳程序或用于运行python的任何平台。它对我有用。

答案 6 :(得分:0)

这将杀死端口 8080 上的所有进程

kill -9 $(lsof -t -i:"8080")

如果您使用 Ctrl+Z 只是停止进程(暂停)而不是 Ctrl+C 来停止进程,您可能会以 open port 结束。

相关问题