windows 指定主机时FastAPI/uvicorn不工作

ma8fv8wu  于 2023-02-13  发布在  Windows
关注(0)|答案(2)|浏览(437)

我在Windows机器上使用uvicorn运行一个Python的FastAPI应用程序,当我执行以下任意一个选项时,它都能正常工作:
1.在我的mac上运行以下代码,或者
1.当我没有为uvicorn指定端口时(从www.example.com调用中删除host参数uvicorn.run)
1.当我指定端口'127.0.0.1'时,这是我根本不指定主机时它使用的主机。

from fastapi import FastAPI
import uvicorn

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello World"}

if __name__ == '__main__':
    uvicorn.run(app, port=8080, host='0.0.0.0')

当我在浏览器上转到0.0.0.0:8080时,我收到一个错误消息,显示“无法到达此站点”。
我已经检查了当前的活动端口,以确保使用netstat -ao |find /i "listening"时不会发生冲突,并且0.0.0.0:8080未在使用中。
我当前的文件配置如下所示:

working_directory
└── app
    ├── gunicorn_conf.py
    └── main.py

我的gunicorn_conf.py非常简单,只尝试设置主机和端口:

host = "0.0.0.0"
port = "8080"

当我指定主机'0.0.0.0'时,如何才能使其工作?

jutyujz0

jutyujz01#

当我在写上面的问题时,我发现了一个解决方案,我想我应该分享一下,以防别人遇到这个问题。为了让它工作,把“http://localhost:8080“而不是“http://0.0.0.0:8080“放进网络浏览器,它会工作得很好。如果你通过python requests包等到达端点,这也是有效的。

sczxawaw

sczxawaw2#

在终端uvicorn main:app --port 8086 --reload中运行此命令

相关问题