You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL2中FastAPI仅根路由可用,非根路由返回404的问题排查

解决WSL2中FastAPI仅根路由可用的问题

针对你遇到的非根路由返回{"detail":"Not Found"}、且文档页面不显示这些路由的问题,以下是直接的排查和解决步骤:

1. 确保运行的是最新代码

旧进程缓存是常见诱因,先彻底终止相关进程再重启:

# WSL中杀掉所有uvicorn进程
pkill -f uvicorn
# 若上述命令无效,杀掉所有Python进程
pkill python3

重新运行脚本:

python your_script_name.py

如果用命令行启动uvicorn,建议添加--reload参数,代码修改后会自动重载,避免缓存问题:

uvicorn main:app --host 127.0.0.1 --port 8000 --reload

2. 检查文件存储位置

如果代码放在Windows挂载的文件系统(如/mnt/c/、/mnt/d/路径下),WSL2与Windows的文件同步可能存在延迟,导致修改后的代码未被Python读取。
将代码迁移到WSL本地文件系统(如~/fastapi-project/),再重新运行测试。

3. 验证路由是否被正确注册

在代码中添加路由打印,确认路由是否成功注册:
修改你的代码,在uvicorn.run之前加入:

# 打印所有已注册的路由路径
print("已注册路由:", [route.path for route in app.routes])

运行后查看终端输出:

  • 若输出包含/home和/services,说明路由注册正常;
  • 若未包含,检查代码是否正确保存,或是否有其他代码覆盖了app实例。

4. 确认端口转发与访问地址

虽然根路由可访问,仍可再确认WSL2的端口状态:
在WSL中运行netstat -tulpn | grep 8000,确认uvicorn确实监听在127.0.0.1:8000;然后在Windows或WSL内用curl测试,确保访问的地址和端口无误。


内容的提问来源于stack exchange,提问作者Cavein Muthama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:30:21