- [Python] Python 패키지 관리의 혁신, uv 사용 가이드 (V3 이슈 포함)2025년 04월 14일 19시 15분 53초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
Python 패키지 관리의 혁신, uv 사용 가이드 (V3 이슈 포함)
파이썬 개발자라면 누구나
pip
를 사용해 패키지를 설치해 보았을 것이다. 하지만 프로젝트가 복잡해질수록 의존성 관리는 점점 어려워지고, 설치 시간은 하염없이 길어지기도 한다. 이러한 문제들을 해결하기 위해 등장한 강력한 도구가 바로uv
이다.이 글에서는 차세대 파이썬 패키지 관리 도구
uv
가 무엇인지 알아보고, 기존pip
와의 차이점, 그리고uv init
,uv add
,uv run
등의 명령어를 활용하여pyproject.toml
파일을 중심으로 프로젝트를 진행하는 상세한 예제를 소개하고자 한다. 또한,uv run
의 편리한 자동 환경 관리 기능과 가상 환경 직접 관리 방법까지 다룰 것이다.1. uv란 무엇인가?
uv
는 Rust로 작성되어 매우 빠른 속도를 자랑하는 파이썬 패키지 설치 프로그램 및 해결 프로그램이다.- 파이썬 코드 검사 도구
Ruff
를 개발한 Astral 팀에서 개발하여 신뢰성을 더한다. - 프로젝트 초기화(
uv init
), 의존성 관리(pyproject.toml
기반,uv add
), 패키지 설치(uv pip install
), 가상 환경 관리(uv venv
), 명령어 실행(uv run
) 등을 하나의 통합된 도구로 제공하는 것을 목표로 한다. 이는 기존의pip
,venv
,pip-tools
등을 대체할 수 있는 잠재력을 지닌다. - 공식 페이지([https://docs.astral.sh/uv/])
2. 왜 uv인가? (pip와의 비교)
uv
는 기존pip
중심의 워크플로우에 비해 다음과 같은 명확한 장점을 제공한다.- 비교 불가능한 속도:
uv
는 Rust의 성능과 효율적인 캐싱, 병렬 처리 기술을 통해pip
대비 수십 배에서 수백 배 빠른 패키지 설치 및 의존성 해결 속도를 보여준다. 특히 복잡한 의존성을 가진 대규모 프로젝트에서 그 차이는 극명하다.
pyproject.toml
중심의 통합 관리:uv
는 최신 파이썬 표준인pyproject.toml
파일을 중심으로 프로젝트를 관리한다.uv init
으로 프로젝트를 시작하고,uv add <package>
명령어를 통해pyproject.toml
에 직접 의존성을 추가하며 동시에 설치까지 완료한다.- 반면,
pip
는 주로requirements.txt
파일을 사용하며,pyproject.toml
과의 통합이나 가상 환경 관리는 별도의 도구(venv
,pip-tools
등)에 의존해야 한다.uv
는 이러한 작업들을 단일 인터페이스로 통합한다.
- 간결한 워크플로우:
- 프로젝트 초기화, 의존성 정의, 설치, 환경 실행 등 프로젝트 관리의 여러 단계를
uv
라는 하나의 도구로 처리할 수 있어 개발 워크플로우가 훨씬 간결하고 효율적이 된다.
- 프로젝트 초기화, 의존성 정의, 설치, 환경 실행 등 프로젝트 관리의 여러 단계를
속도와 편의성, 그리고 현대적인
pyproject.toml
기반의 프로젝트 관리를 원한다면uv
는 최고의 선택이 될 것이다.3. uv 설치하기
권장 방법:
pip
사용시스템에 Python과
pip
가 설치되어 있다면, 다음 명령어로 간단하게uv
를 설치할 수 있다. 이 방법이 가장 일반적이며, 아래에서 설명할 백신 문제를 피할 수 있다.pip install uv
참고: PowerShell 설치 시 V3 백신 오탐 문제
uv
공식 문서에서는 PowerShell을 이용한 설치 방법도 안내한다.# 주의: 이 명령어는 V3 등 일부 백신에서 오탐될 수 있다! powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
하지만 이 명령어는 인터넷에서 스크립트를 받아 바로 실행하는 방식 때문에, AhnLab V3와 같은 일부 백신에서 악성코드로 오탐(False Positive)하는 경우가 보고되었다. (실제로 악성코드가 아니다!)
만약 이 방법으로 설치 시 V3 경고가 발생한다면,
pip install uv
방법을 사용하거나, V3 백신 설정에서 해당 스크립트나 파일 경로를 예외 처리하는 것을 권장한다.4.
uv
와pyproject.toml
사용 예제: 네이버 요청 프로젝트이제
uv
와pyproject.toml
을 사용하여 간단한 웹 요청 프로젝트를 만들어 보자.1단계: 프로젝트 디렉토리 생성 및 이동
mkdir example cd example
2단계:
uv init
으로 프로젝트 초기화uv init
명령어는 현재 디렉토리에pyproject.toml
파일을 생성하여 기본적인 프로젝트 구조를 설정한다. 프로젝트 이름, 버전 등을 설정하는 표준pyproject.toml
파일이 만들어진다.uv init
3단계:
uv add
로 의존성 추가uv add <package>
명령어는 해당 패키지를pyproject.toml
의[project.dependencies]
목록에 자동으로 추가하고, 동시에uv
가 관리하는 가상 환경에 설치까지 완료한다. 프로젝트의 공식 의존성으로 등록하는 올바른 방법이다.uv add requests
이 명령 실행 후
pyproject.toml
파일을 열어보면dependencies
배열 안에"requests"
(버전 명시 포함)가 추가된 것을 확인할 수 있다.
4단계: Python 코드 작성 (
main.py
)requests
라이브러리를 사용하여 네이버에 GET 요청을 보내는 간단한 파이썬 코드를 작성한다.import requests try: response = requests.get("https://www.naver.com") print(f"요청 성공! 상태 코드: {response.status_code}") response.raise_for_status() # 200 OK가 아니면 예외 발생 except requests.exceptions.RequestException as e: print(f"요청 중 오류 발생: {e}")
5단계:
uv run
으로 코드 실행 및 자동 환경 관리 이해uv run
명령어는 단순히 스크립트를 실행하는 것을 넘어, 실행 환경을 자동으로 준비한다.uv run main.py
이 명령어를 실행하면 다음과 같은 일이 일어난다.
- 가상 환경 자동 생성/확인:
uv
는.venv
가상 환경이 없으면 자동으로 생성한다. (Creating virtual environment at: .venv
로그 확인) - 의존성 자동 설치/확인:
pyproject.toml
에 명시된 의존성(requests
등)이.venv
에 없으면 자동으로 설치한다. (Installed X packages...
로그 확인) - 명령어 실행: 준비된 가상 환경 내에서
main.py
를 실행하려고 시도한다.- 실행 방식:
uv run main.py
는main.py
를 직접 실행 가능한 파일로 간주하고 OS에 실행을 위임한다. (쉬뱅, 실행 권한, 파일 연결 등에 의존) 만약 이것이 성공하면 (PATH
등uv
가 설정한 환경 변수 덕분에) 가상 환경의 파이썬과 패키지를 사용하게 된다. - 권장 방식: 더 명확하고 플랫폼 간 호환성을 높이려면
uv run python main.py
처럼 가상 환경 내의python
인터프리터를 명시적으로 지정하는 것이 좋다.
- 실행 방식:
- 가상 환경 자동 생성/확인:
정상적으로 실행되면 터미널에 "요청 성공! 상태 코드: 200" 메시지가 출력될 것이다.
uv run
의 자동 환경 관리 덕분에 별도의venv
생성이나pip install
없이 바로 코드를 실행할 수 있다.
5.
uv
가상 환경 직접 관리 (선택 사항)uv run
의 자동 관리가 편리하지만, 때로는 명시적으로 가상 환경을 제어해야 할 필요도 있다.가상 환경 생성:
프로젝트 루트에서
uv venv
를 실행하면.venv
가상 환경이 생성된다.uv venv
가상 환경 활성화:
사용하는 쉘에 따라 다음 명령어로 활성화한다.
PowerShell:
.\.venv\Scripts\activate
Bash / Zsh:
source .venv/bin/activate
활성화되면 프롬프트 앞에
(.venv)
가 표시된다.
가상 환경 비활성화:
deactivate
활성화 후 직접 실행:
가상 환경이 활성화된 상태에서는
uv run
없이 표준python
명령어로 스크립트를 실행할 수 있으며, 이때는 해당 가상 환경의 파이썬과 패키지를 사용한다.#.venv 활성화된 상태에서 실행 python main.py
6. 마무리
uv
는 압도적인 속도,pyproject.toml
중심의 현대적인 프로젝트 관리, 그리고uv init
,uv add
,uv run
,uv venv
등 일관되고 통합된 명령어 체계를 통해 파이썬 개발 경험을 한 단계 끌어올리는 강력한 도구이다. 특히uv run
의 자동 환경 관리 기능은 개발 초기 단계나 간단한 스크립트 실행 시 매우 편리하다.기존 방식의 번거로움에서 벗어나 빠르고 효율적인 개발 환경을 구축하고 싶다면,
uv
도입을 적극적으로 고려해볼 가치가 충분하다. 지금 바로uv
를 사용하여 생산성의 차이를 경험해보길 바란다.728x90반응형'언어·프레임워크 > Python' 카테고리의 다른 글
[Python] 정규 표현식 (Regular Expression) (0) 2025.04.25 [Python] 파이썬, 한글 파일명 자모 분리? 걱정 노노! (0) 2025.04.17 [Python] py 파일을 exe 파일로 빌드, auto-py-to-exe가 답! (0) 2023.12.18 [Python] selenium 다중 URL 크롤링 중 누락 문제 (0) 2023.12.14 [Python] selenium webdriver의 AttributeError ㅠㅠ (0) 2023.06.12 다음글이 없습니다.이전글이 없습니다.댓글