es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede ejecutar código de cliente FastAPI en Spyder.

Mientras se intenta desarrollar un cliente FastAPI en el entorno Spyder, no se puede iniciar la ejecución.

El código falla y arroja:

RuntimeError: asyncio.run() no puede ser llamado desde un ciclo de eventos en ejecución.

Código mínimo a ser ejecutado:

from fastapi import FastAPI
import uvicorn

app = FastAPI()

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

if __name__ == '__main__':
    uvicorn.run(app, port=8080, host='0.0.0.0')
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Este error ocurre porque Spyder utiliza un bucle de eventos que entra en conflicto con el bucle de eventos asyncio utilizado por FastAPI. Para solucionar este problema, debes agregar el siguiente código al comienzo de tu script:

    import asyncio
    
    asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
    

    Este código establece la política del bucle de eventos en WindowsSelectorEventLoopPolicy, que funciona correctamente con asyncio. Agrega este código al comienzo de tu script, antes de importar cualquier otro módulo, y deberías poder ejecutar el script en Spyder sin problemas.

Comments are closed.