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

在Spyder环境中无法执行FastAPI客户端代码该如何解决

报错原因

Spyder 内置的 IPython 运行环境默认会预先启动一个 asyncio 事件循环,而 uvicorn 启动服务时默认会调用 asyncio.run() 方法,该方法的底层逻辑禁止在已有运行状态的事件循环中重复执行,因此触发该报错。

解决方案
  • 方案1:给事件循环打补丁适配嵌套调用
    先安装依赖:

    pip install nest_asyncio
    

    然后在代码最开头添加补丁逻辑,修改后的完整代码如下:

    import nest_asyncio
    nest_asyncio.apply()
    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')
    
  • 方案2:修改Spyder运行配置,脱离自带内核执行
    打开Spyder顶部菜单栏「运行」→「配置每文件运行」,选中当前代码文件后,勾选「在外部系统终端中执行」,保存后重新运行即可。该方案会直接调用系统原生Python环境运行代码,不会复用Spyder内置的带事件循环的内核,从根源上避免冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:36:08