기술공부

FastAPI 앱 실행 시 reload 옵션

넹넹선생님 2025. 1. 21. 13:18
728x90
반응형

 FastAPI 앱 실행 시 reload 옵션을 사용하려면, uvicorn.run 호출 시 애플리케이션을 문자열로 지정해야 합니다.

올바른 실행 방식은 다음과 같습니다:

수정된 코드

main_API.py에서 다음과 같이 작성되었는지 확인하세요:

import uvicorn

if __name__ == "__main__":
    uvicorn.run("main_API:app", host="0.0.0.0", port=4000, reload=True)

여기서:

  • "main_API:app": main_API.py 모듈의 app 객체를 지정합니다.
    • main_API.py 파일에서 FastAPI 애플리케이션 인스턴스가 다음처럼 정의되어 있어야 합니다:
      from fastapi import FastAPI
      
      app = FastAPI()
      

실행 방법

터미널에서 다음 명령으로 실행할 수도 있습니다:

uvicorn main_API:app --host 0.0.0.0 --port 4000 --reload

주의:

  • main_API는 main_API.py 파일의 이름입니다.
  • app은 해당 파일 내 FastAPI 애플리케이션 객체 이름입니다.

원인 분석

uvicorn.run에서 reload=True를 사용할 경우:

  1. Python 파일을 직접 실행하는 것이 아니라 uvicorn이 앱을 실행해야 합니다.
  2. 이를 위해 앱의 경로를 문자열 형태로 지정해야 합니다 (모듈이름:앱이름).

 

728x90
반응형