Python은 여러 패키지를 함께 사용하는 경우가 많다. 그런데 패키지 버전이 맞지 않으면 사소한 오류가 발생할 수 있다. 그래서 가상환경을 생성, 실행, 관리하는 툴도 다양하다.
필자는 miniconda를 사용해왔다. Anaconda를 쓰자니 무겁고, venv를 쓰자니 불편했다. miniconda도 한 번씩 시스템과 충돌이 생겨 만족스럽지 않았다. 최근 uv가 뜨길래 "유행인가?"하고 써봤더니 충격적이었다.
uv는 빠르고, 편하다. 진짜 빠르다.
단점이라고 하면 신생 라이브러리이다 보니 정보가 부족하다. ChatGPT한테 물어봐도 계속 헛소리만 한다.
pip install uv
pip가 설치되어 있다면 pip install로 uv를 설치할 수 있다.
🗃️ 프로젝트 초기화
uv init 프로젝트_이름
- .python-version: 사용하는 Python 버전
- pyproject.toml: 프로젝트 정보
- uv.lock: 패키지 세부 정보
uv init만 하면 프로젝트 관리에 필요한 파일을 모두 생성한다.
📥 패키지 추가 · 삭제
uv add 패키지
uv add는 패키지를 설치하고 프로젝트에 추가한다.
uv remove 패키지
uv remove는 설치한 패키지를 프로젝트에서 제거한다.
실제로 해보면 엄청나게 빠르다.
▶️ 실행
uv run main.py
길게 source .venv/bin/activate 이런 거 할 필요 없이 uv run만 하면 가상환경 내에서 파일을 실행한다.
말도 안 되게 편하다.
🔥 Python 버전 관리
- .python-version에서 버전 변경
- pyproject.toml에서 requires-python 뒤 버전 변경
위 파일을 수정하고 uv run을 돌리면 알아서 Python 버전을 수정하고 실행해 준다. 해당 버전의 Python이 설치되어 있지 않으면 알아서 설치까지 해준다.
📦 패키지 배포
프로젝트 그대로 gitbhub에 공유하면 된다.
- pyproject.toml
- uv.lock
위에 적은 두 파일은 함께 배포되어야 한다.
프로젝트를 사용할 사람은 clone한 다음, 프로젝트를 내려 받아 바로 uv run으로 돌리면 된다.