无法在 Spyder 中执行 FastAPI 客户端代码

Posted

技术标签:

【中文标题】无法在 Spyder 中执行 FastAPI 客户端代码【英文标题】:Cannot execute FastAPI client code in Spyder 【发布时间】:2021-11-26 01:52:31 【问题描述】:

尝试在 Spyder 环境中开发 FastAPI 客户端时,无法启动执行。

代码失败并引发:

RuntimeError: asyncio.run() 不能从正在运行的事件循环中调用 最少要执行的代码:

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')

【问题讨论】:

在以下帖子中找到了解决方案:***.com/questions/50243393/…。 【参考方案1】:

(这里是 Spyder 维护者) 如果要在 Spyder 中运行使用asyncio 的应用程序,需要先安装一个名为nest_asyncio 的包,然后在 IPython 控制台中运行以下代码在运行代码之前:

import nest_asyncio
nest_asyncio.apply()

注意:您只需运行该代码一次。

【讨论】:

以上是关于无法在 Spyder 中执行 FastAPI 客户端代码的主要内容,如果未能解决你的问题,请参考以下文章

Celery + Flower + FastAPI + RabbitMQ ,Python实现异步消息队列和监控

Celery + Flower + FastAPI + RabbitMQ ,Python实现异步消息队列和监控

服务器总是在慢速请求中返回 503(服务不可用)(FastAPI + Vue)

FastAPI (starlette) 获取客户端真实IP

使用 fastapi 强制执行路径约束

如何在 FastAPI 中进行多处理