Development/Python / / 2024. 4. 4. 20:49

Uvicorn 설치 후 발생할 수 있는 실행 문제 해결법

728x90

uvicorn

 

Python 기반의 ASGI 서버인 Uvicorn을 설치한 후 발생할 수 있는 실행 문제에 대해 이야기해보려고 합니다.

이 문제를 해결하는 방법도 함께 알아보겠습니다.

 

Uvicorn이란?

Uvicorn은 Python에서 ASGI(Asynchronous Server Gateway Interface)를 위한 경량 서버 구현체로, 비동기 프로그래밍을 지원하는 여러 장점을 가지고 있습니다. 주요 장점들을 살펴보겠습니다:

성능: Uvicorn은 빠른 HTTP 서비스를 제공합니다. 비동기 프로그래밍 모델을 사용하여 고성능을 달성하며, 많은 수의 동시 연결을 효율적으로 처리할 수 있습니다.

간결성: Uvicorn은 사용하기 쉽고 구성이 간단합니다. 명령어 한 줄로 서버를 시작할 수 있으며, 프로젝트에 쉽게 통합할 수 있습니다.

표준 지원: ASGI는 Python 비동기 웹 프레임워크와 애플리케이션을 위한 표준입니다. Uvicorn은 이 표준을 완벽히 지원하여, Starlette, FastAPI 등의 현대적인 비동기 웹 프레임워크와 함께 사용될 수 있습니다.

확장성: Uvicorn 자체는 매우 경량화되어 있지만, Gunicorn과 같은 다른 WSGI/ASGI 서버와 함께 사용하여 워커(worker)를 늘리고, 로드 밸런싱 등을 통해 확장성을 높일 수 있습니다.

개발자 친화성: Uvicorn은 개발 중에 자동 리로드 기능을 제공하여, 코드 변경 시 서버를 자동으로 다시 시작합니다. 이는 개발 과정을 매우 편리하게 만들어 줍니다.

커뮤니티 및 생태계: Uvicorn은 활발한 개발 커뮤니티를 가지고 있으며, 많은 현대적인 Python 웹 프레임워크와 호환됩니다. 이는 문제 해결, 통합, 협력에 있어서 큰 이점이 됩니다.

WebSockets 지원: Uvicorn은 WebSockets을 비롯한 다양한 현대적인 웹 기술을 지원합니다. 이를 통해 실시간 통신 애플리케이션을 효과적으로 구축할 수 있습니다.

Uvicorn은 이러한 장점들 덕분에 현대적인 Python 비동기 웹 애플리케이션 개발에 널리 사용되고 있습니다.

 

 

Uvicorn 설치하기

먼저, Uvicorn을 설치하려면 다음 명령어를 사용합니다.

 

pip install "uvicorn[standard]"

 

이 명령어로 Uvicorn을 설치한 후, 다음과 같이 Uvicorn을 실행하려고 할 때 문제가 발생할 수 있습니다.

정상 실행인 경우

root@root:/workspace/python_test$ uvicorn main:app --reload
INFO:     Will watch for changes in these directories: ['/workspace/python_test']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [533] using WatchFiles
INFO:     Started server process [535]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
    

오류 발생인 경우

root@root:/workspace/python_test$ uvicorn main:app --reload
-bash: uvicorn: command not found
    

 

이 경우, 다음과 같이 실행해보세요.

 

python.exe -m uvicorn main:app --reload

 

이 명령어를 사용하면 Uvicorn이 제대로 실행되는 것을 볼 수 있습니다.

원인

터미널에서 Uvicorn 경로를 인식하지 못해서 Python 모듈을 사용하여 Uvicorn을 실행했습니다.

이 글이 Uvicorn 설치 후 발생할 수 있는 실행 문제에 대해 이해하고 해결하는 데 도움이 되었길 바랍니다.

728x90

'Development > Python' 카테고리의 다른 글

FastAPI와 Next.js 결합의 이점  (0) 2024.04.13
Python Framework인 FastAPI의 장점과 설치 방법  (0) 2024.04.13
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유