python

python uv 설치, 명령어, 패키지 생성

Upright_wing 2025. 4. 17. 01:50

Python uv 설치

# 쉘 스크립트를 통한 설치
curl -Ls https://astral.sh/uv/install.sh | bash

# brew 사용 시
brew install astral-sh/uv/uv

# 윈도우 사용시
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

uv 주요 명령어 정리

uv 명령어 기능
uv venv 새로운 가상환경 생성
uv pip install <package> 패키지 설치
uv pip uninstall <package> 패키지 제거
uv pip install -r requirements.txt requirements 파일로부터 패키지 설치
uv pip list 설치된 패키지 목록 확인
uv init <패키지이름> 파이썬 프로젝트 생성하기(구분을 위해 프로젝트라는 명칭사용)
uv add <package> 프로젝트에 외부 패키지 의존성 설치 및 추가
uv remove <package> 프로젝트의 외부 패키지 제거
uv export -o requirements.txt 프로젝트의 의존하는 requirements.txt 생성
uv add requirements.txt 프로젝트에 requirements.txt의존성 추가
uv cache clean 설치 캐시 초기화
uv run <python파일> 프로그램 실행

 


uv를 이용한 프로젝트 생성

1. uv를 사용한 프로젝트생성

$ uv init uv-project
$ cd uv-project
$ tree -a -L 1
---
.
├── .git
├── .gitignore
├── main.py
├── pyproject.toml
├── .python-version
└── README.md

1 directory, 5 files

git, main.py, project.toml, README.md, .python-version이 자동생성되었다.

$ cat main.py
---
def main():
    print("Hello from uv-project!")


if __name__ == "__main__":
    main()
    
-------------------------------------
$ cat .python-version
---
3.10

-------------------------------------
$ cat README.md #아무내용이 없다.

-------------------------------------
$ cat .gitignore
---
# Python-generated files
__pycache__/
*.py[oc]
build/
dist/
wheels/
*.egg-info

# Virtual environments
.venv

-------------------------------------
$ cat pyproject.toml
---
[project]
name = "uv-project"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.10"
dependencies = []

귀찮은 python 관련 .gitignore이 자동생성되는건 놀랍다....

 

2. 가상환경 생성 및 활성화

uv venv
source .venv/bin/activate

# 앞에 (uv-project) 가 붙는다.

3. 패키지 추가

새로운 의존성 패키지를 추가하고, pyproject.toml 및 uv.lock 파일을 자동 갱신합니다. 이떄는 패키지 설치가 아닌 add를 사용합니다.

$ uv add requests #프로젝트에 패키지 추가

# $ uv pip install requests 
# pip를 uv로 실행한다. uv pip로 설치하면 pyproject.toml과 uv.lock은 변경되지 않는다.

$ cat pyproject.toml
---
[project]
name = "uv-project"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.10"
dependencies = [
    "requests>=2.32.3",
]

 

4. 의존성 관리

현재 프로젝트에서 사용 중인 패키지를 requirements로 추출하기.

uv export -o requirements.txt

 

프로젝트에 uv를 사용한 requriement설치

uv add requirements.txt

5. 프로그램 실행

uv run main.py
---
Hello from uv-project!

6. 캐시 관리

설치 과정에서 생성된 캐시 데이터를 정리하기.(필요시)

uv cache clean