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

如何在Jupyter中运行FastAPI应用?解决.ipynb文件运行报错问题

保留.ipynb文件运行FastAPI服务的解决办法

问题描述

编写了以下FastAPI示例代码:

from fastapi import FastAPI

app = FastAPI()

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

将代码保存为main.ipynb文件后,执行命令uvicorn main:app --reload时出现错误:

(venv) PS C:\Users\xxx\xxxx> uvicorn main:app --reload
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [21304] using WatchFiles
ERROR:    Error loading import module "main".INFO:     Stopping reloader process [21304]

报错原因是Uvicorn无法直接加载.ipynb格式文件,需在保留.ipynb文件的前提下解决该问题。

可行解决方案

1. 手动导出.ipynb为.py文件

  • 打开main.ipynb,通过Jupyter Notebook的**文件 > 下载为 > Python (.py)**导出对应的main.py文件。
  • 后续修改main.ipynb后,重新导出覆盖main.py,再执行uvicorn main:app --reload即可正常启动服务。

2. 用nbconvert命令行转换

  • 在终端执行以下命令,将.ipynb文件转为.py格式:
    jupyter nbconvert --to python main.ipynb
    
  • 转换完成后运行uvicorn main:app --reload,后续修改.ipynb后重新执行转换命令即可同步代码。

3. 在.ipynb中直接启动Uvicorn

  • 在main.ipynb的最后一个单元格添加以下代码:
    import uvicorn
    if __name__ == "__main__":
        uvicorn.run(app, host="127.0.0.1", port=8000)
    
  • 运行该单元格即可启动FastAPI服务;修改代码后需重新运行单元格更新服务(此方法无自动重载功能,需手动重启)。

4. 自动同步.ipynb与.py文件

  • 使用nbstripout等工具,配置自动脚本或Git钩子,在修改.ipynb时自动生成同步的.py文件,确保Uvicorn能读取到最新代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 19:55:18