【问题标题】:Error: That Port is already in use (Heroku/Django)错误:该端口已在使用中(Heroku/Django)
【发布时间】:2022-01-10 20:48:05
【问题描述】:

当我在我的机器上运行 heroku local 时,我收到以下错误:

07:44:21 web.1   |  Watching for file changes with StatReloader
07:44:22 web.1   |  Error: That port is already in use.
[DONE] Killing all processes with signal  SIGINT
07:44:22 web.1   Exited with exit code null

当我运行sudo lsof -i tcp:5000 时,我看到的是:

COMMAND     PID   USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
ControlCe 83303    x    19u  IPv4 0x874167a5a53a48c7      0t0  TCP *:commplex-main (LISTEN)
ControlCe 83303    x    20u  IPv6 0x874167a5922f00af      0t0  TCP *:commplex-main (LISTEN)

我尝试使用 kill -9 终止上述进程,但它们似乎并没有消失 - 我不确定这些是否也是导致问题的原因。

任何帮助表示赞赏。

【问题讨论】:

  • 我该如何检查这个?据我所知,我没有
  • 实际上,这看起来像一个 macOS 的东西。您是否已经将 Django 配置为尊重 PORT 环境变量?你有Procfile吗?
  • 我这里做的是Procfile的内容:web: python manage.py runserver 0.0.0.0:$PORT
  • 你是否在你的开发机器上设置了一个PORT 环境变量,例如通过PORT=5000.env 文件中?

标签: django heroku


【解决方案1】:

It looks like port 5000 is used by "AirPlay Receiver" on macOS Monterey。该问题的答案显示了如何在系统偏好设置中禁用 AirPlay 接收器。

但如果您不想禁用该功能,您也可以使用不同的端口。 Django 的默认开发端口是 8000,所以这可能是一个不错的选择。

假设您的 .env 文件中有这样的内容:

PORT=5000

直接改成

PORT=8000

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    • 2012-09-26
    • 2019-02-03
    • 2011-05-07
    • 2018-02-11
    • 2015-09-23
    • 2015-04-03
    相关资源
    最近更新 更多