Flask 服务器在 Macbook 上托管时可见,但在 Windows 桌面上托管时不可见? (尝试了一切?)[重复]

Posted

技术标签:

【中文标题】Flask 服务器在 Macbook 上托管时可见,但在 Windows 桌面上托管时不可见? (尝试了一切?)[重复]【英文标题】:Flask server visible when hosted on macbook, but not when hosted on windows desktop? (Tried everything?) [duplicate] 【发布时间】:2019-04-15 20:01:02 【问题描述】:

我的 macbook 和 windows 桌面在同一个 wifi 网络上。

这是我在 Mac (myFlask.py) 上运行的 python 3 代码:

from flask import Flask

app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello from Mac"

pn = 5000
ip = "192.168.1.146"

if __name__ == '__main__':
    app.run(host = ip,port=pn)

当我在 mac 上运行它时,我可以在两台设备的浏览器上输入 192.168.1.146:5000 作为 url 并看到“来自 Mac 的 Hello”

这是我在桌面 (myFlask.py) 上运行的 python 3 代码:

from flask import Flask

app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello from Windows"

pn = 5000
ip = "192.168.1.105"

if __name__ == '__main__':
    app.run(host = ip,port=pn)

问题:当我在 Windows 桌面上运行它时,当我在两台设备的浏览器上输入 192.168.1.105:5000 作为 url 时,我在桌面,但在 Mac 上“无法访问此站点”。

我尝试了以下方法:

    我仔细检查了 IP 地址,192.168.1.105 是正确的(ipv4)。我还在 windows 命令行上尝试了 ipconfig 中的所有其他 IP 地址,但仍然没有运气。 我查看了http://flask.pocoo.org/docs/0.12/quickstart/ 的外部可见服务器并尝试执行 $python3 myFlask.py --host=0.0.0.0 没有运气。 我检查了我的路由器 (Linksys) 中是否启用了 DHCP,是的,它已启用。 我在 windows 的控制面板中开启了 Home、Public 和 Domain 的所有共享设置。 我关闭了防火墙设置。

即使在这一切之后,我的 mac、我的 android 手机、我的 iphone 和我的其他 mac 都找不到托管在 Windows 桌面上的烧瓶服务器。但是我所有的其他设备(包括 windows 桌面)都可以看到 mac 托管的烧瓶服务器。

我该怎么办?

【问题讨论】:

【参考方案1】:

这涉及到网络的变幻莫测。改为

ip = '0.0.0.0'

然后再试一次。当您尝试将--port=0.0.0.0 传递给您的应用程序时,该选项被忽略,因为您的应用程序没有解析选项。 flask runner 会解析它们。在 Mac 端,调用将是

FLASK_APP=myApp.py flask run --host=0.0.0.0

我不知道 Windows 上的等价物是什么。

【讨论】:

以上是关于Flask 服务器在 Macbook 上托管时可见,但在 Windows 桌面上托管时不可见? (尝试了一切?)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Java 聊天程序在本地主机上工作,但在 Heroku 上托管时不能

在 Netlify 上托管时设置电子邮件

在 AWS 上托管时,拒绝为目标域生成登录提示的权限

在 unix (nginx) 上托管时 .NET Core 中的 TimeZoneInfo

为啥我的 discord.py 机器人在 Heroku 上托管时没有声音?

在 Azure 上托管时找不到位于我的根项目文件夹中的文件