> 백엔드 개발 > 파이썬 튜토리얼 > uv 소개: 차세대 Python 패키지 관리자

uv 소개: 차세대 Python 패키지 관리자

Patricia Arquette
풀어 주다: 2024-12-19 06:34:26
원래의
942명이 탐색했습니다.

Python의 진화는 수동 설치부터 pip 및 시와 같은 도구에 이르기까지 패키지 관리의 발전과 밀접하게 연관되어 있습니다. 그러나 프로젝트가 복잡해짐에 따라 기존 도구는 속도와 효율성이 떨어지는 경우가 많습니다.

uv는 Rust로 구축된 최첨단 Python 패키지이자 프로젝트 관리자로, 이를 변화시키는 것을 목표로 합니다. pip, poem, virtualenv 등의 도구 기능을 결합한 uv는 종속성 관리, 스크립트 실행, 프로젝트 구축 등의 작업을 모두 뛰어난 성능으로 간소화합니다. pip 명령과 완벽하게 호환되므로 추가 학습이 필요하지 않습니다.

이 튜토리얼에서는 uv를 설치하고 기능을 최대한 활용하는 방법을 살펴보겠습니다. 프로젝트 설정 및 종속성 관리부터 스크립트 실행 및 향상된 pip 인터페이스 활용까지.

시작하기

목차

  • 핍 제한
  • UV란 무엇인가
  • UV의 주요 기능
  • 벤치마크
  • 설치
  • 가상 환경 조성
  • uv를 사용하여 플라스크 앱 구축
  • uv로 Python 설치
  • 도구
  • 요약지
  • 현재 제한사항

핍 제한

Pip은 Python으로 작성되어 널리 사용되는 패키지 관리 시스템으로, 소프트웨어 패키지를 설치하고 관리하도록 설계되었습니다. 그러나 인기에도 불구하고 Python에서 가장 느린 패키지 관리 도구 중 하나라는 비판을 자주 받습니다. "pip 설치 속도가 느리다"는 불만 사항은 너무 흔해서 개발자 포럼과 스레드에 자주 나타납니다.

pip의 한 가지 중요한 단점은 종속성 구성 파일이 잘못 작성되거나 유지 관리될 때 발생하는 종속성 냄새에 취약하다는 것입니다. 이러한 문제는 프로젝트의 복잡성 증가, 유지 관리 효율성 감소 등 심각한 결과를 초래할 수 있습니다.

pip의 또 다른 제한 사항은 런타임 환경을 복원할 때 Python 코드를 일관되게 정확하게 일치시킬 수 없다는 것입니다. 이러한 불일치로 인해 종속성 추론 성공률이 낮아져 프로젝트 환경을 안정적으로 재현하기가 어려워질 수 있습니다.

자외선이란 무엇입니까?

uv는 ruff 제작자가 개발하고 Rust로 작성된 현대적인 고성능 Python 패키지 관리자입니다. pip 및 pip-tool을 즉시 대체하도록 설계되어 탁월한 속도와 기존 도구와의 호환성을 제공합니다.

주요 기능에는 편집 가능한 설치, Git 및 URL 종속성, 제약 조건 파일, 사용자 정의 색인 등에 대한 지원이 포함됩니다. uv의 표준 호환 가상 환경은 다른 도구와 원활하게 작동하여 잠금 또는 사용자 정의를 방지합니다. Linux, Windows 및 macOS를 지원하는 크로스 플랫폼이며 PyPI 인덱스에 대해 광범위하게 테스트되었습니다.

단순성, 속도 및 안정성에 초점을 맞춘 uv는 느린 설치, 버전 충돌, 복잡한 종속성 관리와 같은 일반적인 개발자 문제를 해결하여 최신 Python 개발을 위한 직관적인 솔루션을 제공합니다.

UV의 주요 특징

  • ⚖️ 드롭인 교체: pip, pip-tools, virtualenv 및 기타 도구를 완벽하게 호환하여 원활하게 교체합니다.
  • ⚡ 놀라운 속도: pip, pip-compile, pip-sync와 같은 기존 도구보다 10~100배 빠릅니다.
  • ? 디스크 공간 효율적: 종속성 중복 제거를 위해 글로벌 캐시를 활용하여 스토리지를 절약합니다.
  • ? 유연한 설치: Rust나 Python 없이도 컬, pip 또는 pipx를 통해 설치할 수 있습니다.
  • ? 철저한 테스트: 상위 10,000개 PyPI 패키지로 대규모 성능이 입증되었습니다.
  • ?️ 교차 플랫폼 지원: macOS, Linux 및 Windows와 완벽하게 호환됩니다.
  • ? 고급 종속성 관리: 종속성 버전 재정의, 대체 해결 전략 및 충돌 추적 해결 프로그램이 포함된 기능입니다.
  • ⁉️ 명확한 오류 메시지: 동급 최고의 오류 처리 기능을 통해 개발자는 충돌을 효율적으로 해결할 수 있습니다.
  • ? 최신 Python 기능: 편집 가능한 설치, Git 종속성, 직접 URL, 로컬 종속성, 제약 조건 파일 등을 지원합니다.
  • ? 통합 도구: pip, pipx, Poetry, pyenv, Twine 등과 같은 도구의 기능을 단일 솔루션으로 결합합니다.
  • ?️ 애플리케이션 및 스크립트 관리: Python 버전을 설치 및 관리하고 인라인 종속성 메타데이터로 스크립트를 실행하며 포괄적인 프로젝트 워크플로를 지원합니다.
  • ?️ 범용 잠금 파일: 일관되고 이식 가능한 잠금 파일로 프로젝트 관리를 단순화합니다.
  • ? 작업공간 지원: 화물형 작업공간 관리로 확장 가능한 프로젝트를 처리합니다.

벤치마크

Introducing uv: Next-Gen Python Package Manager
출처: https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
웜 캐시를 사용하여 종속성을 해결(왼쪽) 및 설치(오른쪽)하고, 가상 환경을 다시 만드는 프로세스를 시뮬레이션하거나 기존 프로젝트에 새 종속성을 추가합니다.

Introducing uv: Next-Gen Python Package Manager
출처: https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
깨끗한 환경에서 콜드 캐시 시뮬레이션 실행을 통해 종속성을 해결(왼쪽)하고 설치(오른쪽)합니다. 캐싱이 없으면 uv는 pip 및 pip-tools보다 8~10배 빠르며, 웜 캐시를 사용하면 80~115배 더 빠른 속도를 달성합니다.

Introducing uv: Next-Gen Python Package Manager
출처: https://blog.kusho.ai/uv-pip-killer-or-yet-another-package-manager
pip 및 setuptools와 같은 시드 패키지가 있는(왼쪽) 가상 환경과 없는(오른쪽) 가상 환경 생성. uv는 python -m venv보다 약 80배 빠르고 virtualenv보다 7배 빠르며, 모두 Python과 독립적으로 작동합니다.

설치

uv 설치는 빠르고 간단합니다. 독립 실행형 설치 프로그램을 선택하거나 PyPI에서 직접 설치할 수 있습니다.

# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# With pip.
pip install uv

# With pipx.
pipx install uv

# With Homebrew.
brew install uv

# With Pacman.
pacman -S uv
로그인 후 복사
로그인 후 복사

Introducing uv: Next-Gen Python Package Manager
Introducing uv: Next-Gen Python Package Manager

uv를 사용하기 전에 환경변수에 uv 경로를 추가해야 합니다.
Linux 및 macOS의 경우 터미널에서 다음 명령을 사용하여 PATH 환경 변수를 수정합니다.

export PATH="$HOME/.local/bin:$PATH"
로그인 후 복사
로그인 후 복사

Windows의 경우 Windows에서 사용자와 시스템 모두의 PATH 환경 변수에 디렉터리를 추가하려면 검색 패널에서 환경 변수를 검색하세요. 사용자 변수/시스템 변수에서 경로 변수를 선택하고 편집을 클릭한 다음 새로 만들기를 클릭하고 원하는 경로를 추가합니다.

%USERPROFILE%\.local\bin
로그인 후 복사
로그인 후 복사

Introducing uv: Next-Gen Python Package Manager
설치 후 터미널에서 uv 명령을 실행하여 올바르게 설치되었는지 확인하세요.

Introducing uv: Next-Gen Python Package Manager

가상 환경 만들기

uv로 가상 환경을 만드는 것은 간단하고 간단합니다. 원하는 환경 이름과 함께 다음 명령을 사용하여 생성하세요.

uv venv
로그인 후 복사
로그인 후 복사
  • 가상 환경을 활성화하려면 다음 명령을 실행하세요.
# On macOS and Linux.
source .venv/bin/activate

# On Windows.
.venv\Scripts\activate
로그인 후 복사
로그인 후 복사

패키지 설치

가상 환경에 패키지를 설치하는 과정은 익숙한 과정을 따릅니다. 다양한 설치 방법은 아래와 같습니다.

uv pip install flask                # Install Flask.
uv pip install -r requirements.txt  # Install from a requirements.txt file.
uv pip install -e .                 # Install current project in editable mode.
uv pip install "package @ ."        # Install current project from disk
uv pip install "flask[dotenv]"      # Install Flask with "dotenv" extra.
로그인 후 복사
로그인 후 복사

Introducing uv: Next-Gen Python Package Manager

잠긴 종속성을 가상 환경과 동기화하려면 다음 명령을 사용하십시오.

uv pip sync requirements.txt  # Install dependencies from a requirements.txt file.
로그인 후 복사
로그인 후 복사

uv는 -r 요구 사항.txt, -c 제약 조건.txt, -e ., --index-url 등을 포함하여 기존 도구와 유사한 다양한 명령줄 인수를 지원합니다.

uv를 사용하여 플라스크 앱 만들기

uv를 사용하여 몇 가지 프로젝트 관련 명령을 살펴보겠습니다. "sample-project"라는 Python 프로젝트를 초기화하는 것부터 시작하세요.

# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

# With pip.
pip install uv

# With pipx.
pipx install uv

# With Homebrew.
brew install uv

# With Pacman.
pacman -S uv
로그인 후 복사
로그인 후 복사

샘플 프로젝트 디렉터리로 이동합니다. uv는 app.py, 요구사항.txt, README.md 등과 같은 필수 파일로 프로젝트를 초기화합니다.

Introducing uv: Next-Gen Python Package Manager

run 명령을 사용하여 샘플 Python 파일을 실행합니다. 이 프로세스는 먼저 가상 환경 폴더를 생성한 후 Python 파일을 실행합니다.

export PATH="$HOME/.local/bin:$PATH"
로그인 후 복사
로그인 후 복사

Introducing uv: Next-Gen Python Package Manager

플라스크 설치

프로젝트 종속성에 Flask를 추가하세요.

%USERPROFILE%\.local\bin
로그인 후 복사
로그인 후 복사

플라스크 애플리케이션 생성

새로 만들고 다음 코드를 작성해 보세요.

uv venv
로그인 후 복사
로그인 후 복사

앱 실행

uv run 명령을 사용하여 애플리케이션을 실행하세요.

# On macOS and Linux.
source .venv/bin/activate

# On Windows.
.venv\Scripts\activate
로그인 후 복사
로그인 후 복사

브라우저를 열거나 컬이나 Postman과 같은 도구를 사용하여 GET 요청을 보냅니다.

Introducing uv: Next-Gen Python Package Manager
Introducing uv: Next-Gen Python Package Manager

uv로 파이썬 설치하기

uv를 사용하여 Python을 설치하는 것은 선택 사항입니다. 기존 Python 설치와 원활하게 작동하기 때문입니다. 그러나 uv를 통해 Python을 설치하는 것이 선호되는 경우 간단한 명령을 사용하여 수행할 수 있습니다.

uv pip install flask                # Install Flask.
uv pip install -r requirements.txt  # Install from a requirements.txt file.
uv pip install -e .                 # Install current project in editable mode.
uv pip install "package @ ."        # Install current project from disk
uv pip install "flask[dotenv]"      # Install Flask with "dotenv" extra.
로그인 후 복사
로그인 후 복사

Introducing uv: Next-Gen Python Package Manager

이 접근 방식은 저장소를 관리하거나 설치 프로그램을 다운로드할 필요가 없기 때문에 기존 방법에 비해 더 편리하고 안정적입니다. 간단히 명령을 실행하면 설정을 사용할 수 있습니다.

도구

CLI 도구는 uv 명령으로 설치하고 사용할 수 있습니다. 예를 들어, Huggingface_hub 도구를 설치하면 Hugging Face 저장소로 파일을 가져오고 푸시할 수 있습니다.

  • uv를 사용하여 Huggingface_hub를 설치하려면 다음 명령을 사용하세요.
uv pip sync requirements.txt  # Install dependencies from a requirements.txt file.
로그인 후 복사
로그인 후 복사

Introducing uv: Next-Gen Python Package Manager

  • 다음 명령은 설치된 모든 도구를 표시합니다.
uv init sample-project
로그인 후 복사

Introducing uv: Next-Gen Python Package Manager

치트시트

다음은 uv를 사용하여 일반적인 작업을 수행하기 위한 간단한 치트시트입니다.

Introducing uv: Next-Gen Python Package Manager

현재 제한사항

uv는 Python 패키지 관리를 위한 빠르고 효율적인 솔루션을 제공하지만 몇 가지 제한 사항이 있습니다.

  • 불완전한 pip 호환성: uv는 pip 인터페이스의 상당 부분을 지원하지만 아직 전체 기능 세트를 포함하지는 않습니다. 이러한 차이점 중 일부는 의도적인 디자인 선택에 따른 것이며 다른 일부는 UV가 아직 초기 개발 단계에 있기 때문에 발생합니다. 자세한 비교는 pip 호환성 가이드를 참조하세요.
  • 플랫폼별 요구 사항.txt: pip-compile과 마찬가지로 uv는 플랫폼별 요구 사항.txt 파일을 생성합니다. 이는 플랫폼에 구애받지 않는 poem.lock 및 pdm.lock 파일을 생성하는 Poetry 및 PDM과 같은 도구와 대조됩니다. 결과적으로 uv의 요구 사항.txt 파일은 다양한 플랫폼과 Python 버전 간 이식성이 부족할 수 있습니다.

이 글을 읽어주셔서 감사합니다!!

콘텐츠를 검토해 주신 Gowri M Bhatt에게 감사드립니다.

이 기사가 마음에 드셨다면 하트 버튼♥을 눌러 다른 사람들이 찾을 수 있도록 공유해주세요!

자원

uv - Rust로 작성된 매우 빠른 Python 패키지 및 프로젝트 관리자 | docs.astral.sh

위 내용은 uv 소개: 차세대 Python 패키지 관리자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿