我遇到了 FastAPI 的问题,有时,当我使用 Ctrl+S 保存更改时,WatchFiles 会在重新加载时卡住。这会导致终端滞后,我无法退出或执行任何其他操作。解决此问题的唯一方法是强制关闭终端。
但是,当我随后尝试在同一端口上运行该应用程序时,它显示该应用程序的旧版本。我必须在不同的端口上运行应用程序,这是不方便且不切实际的。
有没有办法解决这个问题,如果没有,我该如何释放旧端口?我可以在 netstat 中看到端口,但在 Windows 任务管理器中找不到 PID。 重现步骤:
使用 Ctrl+S 保存 FastAPI 项目中的更改。 观察到 WatchFiles 有时会在重新加载时卡住,导致终端滞后。 预期行为: 应用程序应该重新加载而不会卡住,并且终端应该保持响应。
实际行为: WatchFiles 在重新加载时卡住,终端滞后,继续的唯一方法是强行关闭终端。
环境:
FastAPI版本:0.0.4 WatchFiles 版本:0.22.0 操作系统:Windows 代码示例:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
其他背景: 如果端口被占用,我可以在netstat中看到它,但在Windows任务管理器中找不到PID。
我仍然遇到这个问题,但我现在能做的就是关闭终端并使用以下命令在不同的端口上再次运行:
uvicorn main:app --reload --port 80