[fastapi] notebook에서 fastapi 실행하기

우당탕탕 dlog·2023년 11월 28일
0

물론 실제 서버를 운영할 때 notebook에서 fastapi server를 실행하면 안됩니다.

하지만 unittest나 간단한 서버 테스트를 위해 fastapi를 노트북에서 실행하고 싶을 때가 있죠.
그럴 때 nest_asyncio를 사용하면, 간단하게 FastAPI를 노트북에서 사용할 수 있습니다.

https://github.com/erdewit/nest_asyncio

0. 동작 설명 (안궁금하면 Skip)

Python의 비동기모듈 asyncio는 기본적으로 Event loop의 중첩을 허용하지 않습니다.
여기서 이벤트 루프 는 위 그림처럼 비동기적으로 Task를 처리하는 핵심 주체라고 생각하면 됩니다.

업로드중..

nest asyncio는 이 asyncio를 패치해서, 중첩으로 Event loop를 부를 수 있도록 수정한 버전이라고 생각하면 됩니다.

거시적인 관점에서의 asyncio의 중첩 event loop 허용은 스케줄링이나 코루틴 관리가 더 복잡해진다는 단점도 많지만,
우리는 간단하게 노트북에서 테스트용으로 쓸 거 니까요..!

걱정말고 사용해봅시다.

+) nest asyncio 갑론을박이 궁금하신 분들은..
https://github.com/erdewit/nest_asyncio/issues/36


1. nest_asyncio 설치

pip install nest_asyncio 

2. 노트북 셀에서 uvicorn 실행




import nest_asyncio
import uvicorn

nest_asyncio.apply()
uvicorn.run(app)
profile
차근차근 쌓아가는 dlog

0개의 댓글