UV 란?
uv 는 Astral 개발진이 개발한 초고속 Python 패키지 관리 도구이다. 기존의 pip, virtualenv, pip-tools, pipenv 등을 대체할 수 있도록 설계되었으며, Rust 로 구현되어 매우 빠른 속도를 자랑한다
또한 캐싱과 최적화를 적극 활용하여 대규모 프로젝트에서도 빠른 설치 및 업데이트가 가능하다.
uv 설치 방법
MAC, Linux
1
| curl -LsSf https://astral.sh/uv/install.sh | sh
|
Windows
1
| powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
|
uv 사용방법
1. 프로젝트 생성
1
2
| uv init <project name>
cd <project name>
|
<project name> 의 폴더가 생성되고 그 내부에 아래와 같은 구조의 폴더가 생성 (poetry 와 유사)
1
2
3
4
5
6
7
| <project name>
├── .git
├── .gitignore
├── .python-version
├── main.py
├── pyproject.toml
└── README.md
|
.git 까지 생성해준다(?!) 인터넷에 찾아봤는데 없었는데 ….
2. python 버전 생성
1
| uv python install <version>
|
- 자동으로 설치해주고, 그 버전 환경을 자동으로 켜준다.
3. virtual env 생성
1
| uv venv --python <version>
|
- 폴더 내에
.venv 폴더를 생성해준다. - 만약 의존성을 추가하면 자동으로 생성해준다.
virtual env 실행
1
| source .venv/bin/activate
|
python -m venv 실행해줄때처럼 실행해주면 된다.
4. uv 명령어들
1
2
3
4
5
| uv add <패키지 명> ## 프로젝트 종속성 추가
uv remove <패키지 명> ## 프로젝트 종속성 삭제
uv sync ## 프로젝트 종속성 동기화 (자동으로 .venv 생성)
uv lock ## 프로젝트 종속성에 대한 잠금 파일을 생성
uv run ## 프로젝트 환경에서 명령어를 실행함
|
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| # 1.
uv init uv-test # uv-test 이름으로 폴더 생성
cd uv-test
# 2.
uv add pandas numpy torch # 원하는 패키지 add
# 3.
echo "import pandas\nimport numpy \nimport torch\nprint('hello')" >> hello.py # 임시 파일 생성
# 4-1. uv 를 통해 실행
uv run hello.py
# 4-2. uv 가상환경 실행하여 실행
source .venv/bin/activate
python hello.py
|
Reference
Comments powered by Disqus.