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