- Published on
Python Package Manager UV
최근 다양한 파이썬 패키지 매니저들이 나오고 있고, poetry부터 pdm까지 다양하게 사용해보고 있다. 그 중 uv 가 설치 속도도 빠르고, 관리가 편하다고 느껴 자주 사용해보고자 한다.
Installation
# python
pip install uv
# linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# mac
brew install uv
# windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Commands
새 프로젝트 생성
# create new directory
uv init [project_name]
# use current directory
uv init .
파이썬 패키지 추가
uv add [package_name]
# with version
uv add [package_name]==[version]
# dev
uv add [package_name] --dev
# extra install
uv add [package_name] --extra [extra_name] # pip install 'package_name[extra_name]'
파이썬 패키지 삭제
uv remove [package_name]
lock and sync
# uv.lock 파일 생성
uv lock
# uv.lock 의 dependenceis 설치
uv sync
export
uv export -o requirements.txt
with pyenv virtualenv
virtualenv 에서도 uv 를 사용하여 package 를 관리할 수 있다. 우선 ㅔyenv local 명령어로 사용할 가상환경을 설정한 뒤, 다음과 같이 --active
옵션을 준다.
uv add [package_name] --active # install packages on current env
uv sync --active
--active
옵션을 주지 않으면 다음과 같은 warning msg 가 나온다.
warning: Ignoring unsupported Python request `[virtualenv]` in version file: [package_path]/.python-version
warning: `VIRTUAL_ENV=.../.pyenv/versions/3.12.10/envs/[virtualenv]` does not match the project environment path `.venv` and will be ignored; use `--active` to target the active environment instead
이후에 .venv
를 생성하고, 여기에 패키지를 설치하는데, 이렇게 되면 현재 사용 중인 가상 환경과 패키지가 설치된 환경이 달라 사용할 수 없다.