UV 공통 명령

Python Eco는 고전적인 패키지 관리 및 환경 관리 도구부터 pipvirtualenv (시간)까지 pip-toolsconda그리고 현대화 PoetryPDM 등등. 각 도구에는 전문 분야가 있지만 개발자의 도구 체인이 파편화되고 복잡해지는 경우도 많습니다.

이제부터 Astral 회사(잘 알려진) Python Linter Ruff (의 창시자 uv 더 크로싱은 새로운 가능성을 열었습니다. 이 제품은 다음을 사용합니다. Rust 언어로 작성된 도구가 되기를 열망합니다. 빠르고 통합된 개발자 친화적 Python 패키지 및 프로젝트 관리자. 목표는 분명합니다. Rust 생태학적으로 건전한 Cargo 이 회사의 성공적인 경험은 원스톱 솔루션을 제공합니다.uv 속도가 빠를 뿐만 아니라 환경 관리, 패키지 설치, 종속성 해결, 프로젝트 관리 등이 통합되어 있습니다.

왜 UV인가요?

기존 도구와 비교uv 핵심 하이라이트에 대한 보다 현대적이고 효율적인 대안을 제공합니다:

  1. 속도 대폭 개선기준 Rust 컴파일 시간 최적화와 효율적인 동시 처리를 지원합니다.uv 종속성 해결 및 패키지 설치와 같은 일반적인 작업에서 다음과 같은 기존 도구보다 빠릅니다. pip 어쩌면 Poetry보다 훨씬 더 빠릅니다. 또한 효율적인 글로벌 캐싱 메커니즘이 내장되어 있어 반복적인 작업도 거의 즉각적으로 처리할 수 있습니다. 그 뒤에는 Rust 언어 기능(예: 메모리 안전성으로 인한 두려움 없는 동시성)과 고품질 기본 라이브러리(예: TokioReqwest) 크레딧.
  2. 전체 기능 통합::uv 개발자를 위한 '스위스 아미 나이프'를 목표로 가상 환경 생성 및 관리부터 종속성 설치 및 잠금(기본 지원)에 이르기까지 모든 것을 다룹니다. pyproject.toml호환 가능 requirements.txt)부터 스크립트 실행, 전역 도구 관리, 특정 Python 버전의 전체 개발 프로세스를 확인할 수 있습니다.
  3. 최신 프로젝트 관리: 기본 지원 pyproject.toml (PEP 517/518/621 표준), 즉 현대의 Python 프로젝트의 사실상 표준 프로필입니다.uv 종속성 그룹(예: 개발 종속성)을 명확하게 처리하고 크로스 플랫폼 생성 기능 uv.lock 잠긴 파일. 이 잠금 파일은 모든 직간접 종속성의 특정 버전과 소스를 정확하게 기록하여 언제 어느 머신에서든 완전히 일관된 환경을 재빌드하여 진정한 결정론적 빌드를 수행할 수 있도록 보장합니다.
  4. 우수한 호환성::uv 링크를 제공합니다. pip 호환성이 뛰어난 명령 인터페이스(uv pip ...) 및 이해할 수 있습니다. requirements.txt 파일 형식으로 기존 프로젝트를 마이그레이션할 수 있습니다. uv 이 과정은 비교적 순조롭습니다.
  5. 적극적인 개발과 미래:: 작성자 Astral 팀은 적극적으로 유지 관리하고 신속하게 반복 작업을 수행합니다. MIT 오픈 소스 라이선스. 커뮤니티의 높은 관심, 큰 발전 가능성, 유망한 미래.

활용 uv개발자는 비슷한 경험을 할 것으로 예상됩니다. Node.js ( npm / yarn / pnpm ) 또는 Rust ( Cargo )를 유동적이고 통합된 종속성 관리 워크플로로 사용할 수 있습니다.

UV 설치

마운팅 uv 매우 간단합니다. 공식적인 권장 사항은 제공된 설치 스크립트를 사용하는 것입니다. Python 환경. 물론 pip 또는 시스템 패키지 관리자도 실행 가능한 옵션입니다.

  • 권장 방법(크로스 플랫폼 스크립팅)::
    # macOS / Linux (bash, zsh, etc.)
    curl -LsSf https://astral.sh/uv/install.sh | sh
    # Windows (PowerShell)
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    

    다음 사항에 유의하십시오.공식 스크립트는 기본적으로 uv 사용자 디렉터리의 특정 위치에 설치(예 Linux / macOS (명목식 형태로 사용됨) ~/.uv/bin 어쩌면 Windows (명목식 형태로 사용됨) %LOCALAPPDATA%\uv\bin), 일반적으로 시스템 디스크에 있습니다(예 C: (디스크).

  • pip 사용(기존 Python 환경 필요)::
    pip install uv
    # 或推荐使用 pipx 进行隔离安装
    # pipx install uv
    

    만약 Python 환경 또는 pipx 환경 자체는 시스템 디스크에 있지 않으며, 이 방법으로 설치하면 uv 보통 자신의 위치도 따라갑니다. 이 설정은 PIPX_HOME 제어할 환경 변수 pipx 설치 경로

  • 시스템 패키지 관리자 사용(예시)::
    # macOS (Homebrew)
    brew install uv
    # Windows (Scoop)
    # 可以先将 Scoop 本身安装到非系统盘,然后用它安装 uv
    scoop install uv
    # Arch Linux
    pacman -S uv
    

    다음과 같은 경우 Scoop 이러한 패키지 관리자 자체는 시스템 디스크가 아닌 디스크에 구성된 다음 설치하는 애플리케이션( uv)도 일반적으로 같은 드라이브에 설치됩니다.

  • 카고 사용(Rust 환경 필요)::
    cargo install uv --locked --git https://github.com/astral-sh/uv
    

    uv 에 설치됩니다. Cargo (명목식 형태로 사용됨) bin 카탈로그. 이 작업은 CARGO_HOME 환경 변수는 전체 .cargo 디렉토리(다운로드한 crates 및 컴파일된 제품)을 비시스템 디스크로 마이그레이션했습니다.

설치가 완료되면 다음을 실행합니다. uv --version 어쩌면 uv help 를 클릭하여 설치가 성공했는지 확인합니다.

UV 데이터 저장 위치 구성(고급)

기본적으로uv 캐시하고 다운로드합니다. Python 버전뿐만 아니라 uv tool install 설치된 글로벌 도구는 사용자 디렉터리의 기본 위치(일반적으로 시스템 드라이브)에 저장됩니다. 다른 드라이브(예를 들어 D: 디스크)를 사용하여 시스템 디스크의 공간을 절약하거나 SSD 쓰기를 설정하여 설정할 수 있습니다.환경 변수를 통해 실현할 수 있습니다.

다음은 몇 가지 주요 환경 변수입니다:

  • UV_CACHE_DIR제어 uv 캐시 디렉터리의 위치입니다. 캐시에는 다운로드한 패키지 파일, 빌드된 패키지 파일이 포함됩니다. wheel 등 더 많은 공간을 차지할 수 있습니다.
  • UV_PYTHON_INSTALL_DIR:: 제어 uv python install 다운로드 및 관리 Python 통역기가 설치될 위치입니다.
  • UV_TOOL_INSTALL_DIR:: 제어 uv tool install 글로벌 설치 Python 도구와 도구의 격리된 환경을 위한 저장 위치.

환경 변수 설정 방법(예시):

목표가 모든 uv 데이터는 D:\uvdata 카탈로그.

  • Windows(PowerShell - 임시 설정, 현재 세션에만 유효):
    $env:UV_CACHE_DIR = "D:\uvdata\cache"
    $env:UV_PYTHON_INSTALL_DIR = "D:\uvdata\python"
    $env:UV_TOOL_INSTALL_DIR = "D:\uvdata\tools"
    # 之后在此会话中运行 uv 命令,数据将写入新位置
    uv pip install requests
    
  • Windows(시스템 환경 변수 - 영구 설정):
    1. 존재 Windows 검색창에서 '환경 변수'를 검색합니다.
    2. "시스템 환경 변수 편집"을 클릭합니다.
    3. "시스템 속성" 대화 상자에서 "환경 변수..." 버튼을 클릭합니다. 버튼을 클릭합니다.
    4. "사용자 변수" 또는 "시스템 변수" 영역(모든 사용자에 대해 설정해야 하는 경우가 아니라면 사용자 변수를 권장함)에서 "새로 만들기"를 클릭합니다. ..." .".
    5. 변수 이름을 입력합니다(예 UV_CACHE_DIR) 및 변수 값( D:\uvdata\cache).
    6. 다른 두 변수에 대해서도 이 과정을 반복합니다.
    7. "확인"을 클릭하여 모든 대화 상자를 닫습니다.
    8. 핵심:: 필수다시 열기 PowerShell 또는 명령 프롬프트 창을 실행하여 새 환경 변수를 적용하세요.
  • Linux / macOS(bash/zsh - 임시 설정):
    export UV_CACHE_DIR="/path/to/non_system_drive/uvdata/cache"
    export UV_PYTHON_INSTALL_DIR="/path/to/non_system_drive/uvdata/python"
    export UV_TOOL_INSTALL_DIR="/path/to/non_system_drive/uvdata/tools"
    # 之后在此会话中运行 uv 命令
    uv pip install requests
    
  • Linux/맥OS(영구 설정):
    토폴로지 export 명령을 셸 구성 파일에 추가합니다(예 ~/.bashrc~/.zshrc~/.profile)를 실행한 다음 source ~/.your_config_file 를 클릭하거나 터미널을 다시 시작해야 구성을 적용할 수 있습니다.

중요 참고 사항:

  • 이러한 환경 변수를 설정한 후uv 지정된 경로가 자동으로 사용됩니다. 이러한 디렉터리가 존재하는지, 그리고 uv 쓰기 권한이 있습니다.
  • 가상 환경(.venv) 위치uv venv 기본값은프로젝트 루트 디렉터리만들기 .venv 폴더로 이동합니다. 결과적으로프로젝트 자체가 시스템 디스크가 아닌 디스크에 있는 한( D:\myproject), 다음 .venv 당연히 해당 디스크에도 저장됩니다.. 일반적으로 다음과 같은 목록을 제공할 필요는 없습니다. .venv 시스템 디스크를 피하려면 경로를 개별적으로 구성하세요. 물론 다음과 같은 방법으로 시스템 디스크를 피할 수도 있습니다. uv venv /path/to/custom/env 가상 환경을 만들 위치를 명시적으로 지정하지만, 이는 시스템 디스크 스토리지 문제를 해결하기보다는 환경 경로를 사용자 지정하기 위한 것입니다.

이러한 환경 변수를 적절하게 구성하면 다음과 같이 효과적으로 관리할 수 있습니다. uv 생성되어 공간이 더 넉넉하거나 더 적절한 저장 위치로 이동합니다.

UV 핵심 개념

사용 시 uv 프로젝트를 관리할 때는 다음과 같은 핵심 개념을 이해하는 것이 중요합니다:

  • pyproject.toml: 모던 Python 프로젝트의 표준 프로필(PEP 517/518/621 기준).uv 프로젝트 메타데이터(이름, 버전, 설명 등)를 정의하는 데 사용합니다. Python 버전 (requires-python) 및 프로젝트의 주요 종속성(dependencies) 및 선택적 종속성 그룹(예 dev-dependencies). 프로젝트 구성을 위한 '단일 소스'입니다.
  • uv.lock:: 작성자 uv 자동으로 생성되고 관리되는 잠긴 파일입니다. 프로젝트의 모든 종속성(간접 종속성 포함)의 특정 버전 번호와 소스 해시를 정확하게 기록합니다. 이 파일의 핵심 가치는 다음을 보장하는 것입니다.환경 재현성언제 어디서나 동일하게 사용 가능 uv.lock 파일이 종속성을 설치하면 정확히 동일한 패키지 조합을 얻을 수 있습니다.이 파일은 수동으로 편집해서는 안 됩니다..
  • 가상 환경(.venv)::uv 강력히 권장하며 가상 환경 사용을 간소화합니다. 기본적으로 프로젝트 루트 디렉터리에 다음과 같은 가상 환경을 만드는 것으로 설정됩니다. .venv 프로젝트 종속성을 수용하기 위해 고립된 환경을 구축할 수 있습니다. 대부분의 uv 명령(예 addsyncrun)를 자동으로 감지하고 이 환경에서 작업을 수행하여 글로벌 Python 환경 오염.

UV로 Python 프로젝트 관리하기

아래는 전체 프로세스를 통해 사용 방법을 보여주는 데모입니다. uv 를 생성하고 관리하기 위해 Python 프로젝트.

프로젝트 초기화(uv init)

활용 uv init 명령을 사용하면 새 프로젝트의 기본 구조를 빠르게 구축할 수 있습니다.

# 确保在期望的驱动器上操作,例如在 D: 盘
# D:
# mkdir my_uv_project
# cd my_uv_project
# 初始化名为 my_uv_project 的项目
uv init my_uv_project
cd my_uv_project

구현 후uv 에 있을 것입니다. my_uv_project 디렉토리가 생성됩니다:

  • .git/ 노래로 응답 .gitignore: 자동 초기화 Git 리포지토리를 제공하고, 공통 Python 스포츠 이벤트 .gitignore 문서화.
  • .python-version프로젝트 제안서 또는 요청 문서 Python 버전(예 3.12).uv 이 문서를 참조하여 적절한 것을 선택하거나 설치합니다. Python 통역사.
  • pyproject.toml프로젝트 이름, 버전, 설명이 포함된 프로젝트의 핵심 구성 파일입니다,Python 버전 요구 사항 및 비어 있음 dependencies 목록.
  • README.md비어있는 README 문서화.
  • src/my_uv_project/__init__.py기본 소스 코드 구조 ( src (레이아웃)을 클릭합니다. 또는 간단한 hello.py 예제 파일입니다.
# pyproject.toml 示例内容 (可能略有不同)
[project]
name = "my-uv-project"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12" # 根据系统情况或指定版本生成
dependencies = []
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
# uv 可能还会添加 tool.uv 相关配置

환경 만들기 및 동기화(uv venvuv sync)

프로젝트가 초기화된 후에는 가상 환경을 만들고 종속성 상태를 동기화해야 합니다(빈 종속성이라도 첫 번째 동기화 시에는 uv.lock).

  1. 가상 환경 만들기(uv venv)::
    비록 uv sync 및 기타 명령은 자동으로 .venv를 사용하지만 명시적으로 만들 수도 있습니다:

    # 创建默认的 .venv 环境 (uv 会根据 .python-version 或系统查找合适的 Python)
    # 这个 .venv 会在当前项目目录下创建
    uv venv
    # 创建时指定 Python 版本
    uv venv --python 3.11
    # 指定自定义环境名称 (不常用,因为 uv 生态默认与 .venv 配合)
    uv venv my_custom_env
    

    수동 운영 환경이 필요한 경우(예: 비 uv 관리 도구)를 활성화해야 합니다:

    # Linux/macOS
    source .venv/bin/activate
    # Windows (PowerShell)
    .venv\Scripts\Activate.ps1
    # Windows (CMD)
    .venv\Scripts\activate.bat
    

    노동대부분의 경우 uv 명령 (addremovesyncrun 등).일반적으로 환경의 수동 활성화는 필요하지 않습니다.(수학.) 속uv 은 자동으로 .venv.

  2. 동기화된 환경(uv sync)::
    이 명령은 가상 환경의 상태가 실제 환경의 상태와 동일한지 확인하는 데 사용되는 핵심 명령 중 하나입니다. pyproject.toml(경유 uv.lock 문서) 또는 requirements.txt 파일은 정확하게 일관성이 있습니다. 처음 실행하면 그렇게 됩니다:

    • 검색 pyproject.toml 를 종속성 정의에 추가합니다.
    • 종속성 해결을 수행합니다.
    • 생성 uv.lock 문서화.
    • 존재 .venv (처음에는 프로젝트 자체만 편집 가능한 패키지로 사용할 수 있습니다).
    # 在项目根目录运行
    uv sync
    

    실행 후 다음과 같이 표시됩니다. .venv 디렉터리가 생성되거나 업데이트되고 uv.lock 문서화.

종속성 관리(uv adduv removeuv lock)

이것은 uv 가장 일반적으로 사용되는 기능으로, 다음을 기준으로 사용을 권장합니다. pyproject.toml 워크플로우의

  • 종속성 추가(uv add):
    패키지를 pyproject.toml (명목식 형태로 사용됨) [project.dependencies] 섹션에 자동으로 설치하거나 업데이트합니다. .venv 환경으로 이동합니다. 동시에 uv.lock 또한 업데이트될 예정입니다.

    # 添加最新稳定版的 pandas
    uv add pandas
    # 添加 requests,并指定版本约束
    uv add "requests>=2.20,<3.0"
    # 添加开发依赖 (如测试框架 pytest),会写入 [tool.uv.dev-dependencies]
    uv add pytest --dev
    uv add ruff --dev
    # 从 Git 仓库添加依赖
    uv add git+https://github.com/psf/requests.git
    # 添加本地路径的包 (以可编辑模式安装)
    uv add -e ../my_local_library
    
  • 종속성 제거(uv remove):
    통해 (틈새) pyproject.toml 는 지정된 패키지를 .venv 환경과 더 이상 필요하지 않은 다운스트림 종속성을 제거할 수 있습니다.

    # 移除 pandas
    uv remove pandas
    # 移除开发依赖 pytest
    uv remove pytest --dev
    
  • 종속성 업데이트:
    • 모든 종속성을 다음과 같이 업데이트합니다. pyproject.toml 의 제약 조건이 허용하는 최신 버전으로 재생성하고 uv.lock::
      # 1. 更新 lock 文件
      uv lock --upgrade
      # 2. 应用 lock 文件更新到环境
      uv sync
      
    • 특정 패키지만 최신 버전으로 업데이트하세요:
      # 方法一:指定包更新 lock 文件,然后同步
      uv lock --upgrade-package requests
      uv sync
      # 方法二:直接 'add' 最新版 (也会更新 lock 和环境)
      uv add requests@latest
      
  • 수동 편집 pyproject.toml 엠프레스:
    직접 수정하는 경우 pyproject.toml 종속성 목록에서 변경 사항을 적용하려면 다음 두 단계를 수행해야 합니다:

    1. uv lock :: 기준 pyproject.toml 새 콘텐츠는 종속성을 다시 계산하고 uv.lock 문서화.
    2. uv sync :: Will uv.lock 파일의 상태가 동기화됩니다. .venv 가상 환경.

코드 및 명령 실행(uv run)

uv run be uv 매우 편리한 기능이 제공됩니다. 이 기능을 사용하면 uv 관리형 가상 환경의 컨텍스트에서 실행 Python 스크립트 또는 모든 명령어.미리 환경을 수동으로 활성화할 필요가 없습니다.. 이것은 uv 간소화된 워크플로우의 핵심 기능 중 하나는 마스터할 가치가 있는 기능입니다.

작동 원리:

실행할 때 uv run <command> [args...] 시간:

  1. 환경 자동 검색::uv 은 현재 디렉토리와 상위 디렉토리를 자동으로 찾습니다. .venv 가상 환경.
  2. 내부 구성 환경 실행:
    • 와 관련하여 uv run python your_script.py 그런 명령입니다.uv 를 직접 호출하면 .venv 디렉토리의 Python 인터프리터 (.venv/bin/python 어쩌면 .venv/Scripts/python.exe)를 클릭하여 스크립트를 실행합니다.
    • 와 관련하여 uv run pytest tests/ 어쩌면 uv run ruff format . 그런 명령입니다.uv 다음을 수행해야 합니다.명령을 실행하는 하위 프로세스 내부중간값은 다음과 같습니다. .venv/bin (또는 .venv/Scripts) 디렉토리가 시스템에 추가됩니다. PATH 를 환경 변수의 맨 위에 추가합니다. 이렇게 하면 환경을 활성화하지 않아도 운영 체제에서 가상 환경에 설치된 명령줄 도구(예: pytestruff).

Python 파일은 어떻게 실행하나요?

프로젝트의 Python 파일(예 src/my_package/main.py 또는 app.py)를 사용하는 것이 좋습니다:

uv run python src/my_package/main.py
# 或者
uv run python app.py

최첨단:

  • 수동 활성화 필요 없음입력할 필요가 없습니다. source .venv/bin/activate 어쩌면 .venv\Scripts\Activate.ps1 번거로운
  • 환경 일관성 보장코드와 도구가 항상 프로젝트 구성에 맞는 올바른 가상 환경에서 실행되는지 확인합니다.
  • CI/CD 스크립트 간소화다음과 같은 자동화 프로세스에서 GitHub ActionsGitLab CI)에서 직접 사용할 수 있습니다. uv run 복잡한 환경 활성화 로직을 처리할 필요 없이 테스트, 빌드, 배포와 같은 작업을 수행하세요.

더 보기 uv run 일반적인 예:

# 运行安装在环境中的 pytest 测试
uv run pytest tests/
# 运行安装在环境中的 ruff 代码格式化
uv run ruff format .
# 运行任意系统命令,uv 会确保 .venv/bin 在 PATH 中
uv run alembic upgrade head
# 向脚本传递参数
uv run python your_script.py --input data.csv --output results.json

언제 수동으로 활성화해야 하나요?

수동 활성화(source activate 또는 유사한 명령)의 사용량이 크게 줄었습니다. 아마도 주로 동일한 셸 세션에서 필요할 것입니다:

  • 가상 환경에 의존하는 여러 명령을 자주 대화형으로 실행하는 경우(예를 들어 python 통역사로 이동한 다음 pytest그리고 다시. ruff).
  • 활성화 스크립트 설정에 따라 달라지는 몇 가지 특정 환경 변수( PATH (그 외) 비 Python 도구.

하지만 대부분의 일상적인 개발 작업에서는uv run 자동화된 환경 관리 기능이 제공되어 더욱 편리하고 효율적입니다.

활용 requirements.txt (워크플로 호환)

비록 uv 추천 pyproject.toml하지만 기존의 requirements.txt 워크플로우를 제공하고 pip 호환되는 명령 인터페이스와 더 빨라진 속도.

  • 설치 종속성(uv pip install):
    # 安装单个包
    uv pip install flask
    # 从 requirements 文件安装
    uv pip install -r requirements.txt
    # 可以同时指定多个文件
    uv pip install -r requirements.txt -r requirements-dev.txt
    # 安装当前项目 (以可编辑模式)
    uv pip install -e .
    
  • 종속성 제거(uv pip uninstall):
    uv pip uninstall flask
    # 从文件批量卸载
    uv pip uninstall -r requirements-to-remove.txt
    
  • 종속성 목록 생성(uv pip freeze):
    # 输出当前环境安装的所有包 (类似 pip freeze)
    uv pip freeze > requirements.lock.txt # 常用于生成锁定文件
    
  • 종속성 컴파일(uv pip compile) (권장 requirements 워크플로):
    이 접근 방식은 다음과 유사합니다. pip-tools. . requirements.in 파일(직접 종속성만 포함)을 생성한 다음 uv 정확한 버전의 requirements.txt 파일을 잠급니다.

    # requirements.in 内容示例:
    # flask
    # requests>=2.25
    # 生成 requirements.txt
    uv pip compile requirements.in -o requirements.txt
    # 为开发环境编译 (假设有 requirements-dev.in)
    # uv pip compile requirements-dev.in -o requirements-dev.txt
    
  • 동기화된 환경(uv pip sync):
    하나 이상의 requirements.txt 파일의 내용이 가상 환경과 정확하게 동기화되어 누락된 패키지가 설치되고 중복된 패키지가 제거됩니다.

    # 同步主依赖和开发依赖
    uv pip sync requirements.txt requirements-dev.txt
    
  • 설치된 패키지 보기(uv pip listuv pip showuv pip tree):
    uv pip list          # 列出已安装的包和版本
    uv pip show flask    # 显示 flask 包的详细信息
    uv pip tree          # 以树状结构显示依赖关系
    

파이썬 버전 관리(uv python)

uv 다운로드, 관리 및 선택 기능 내장 Python 버전의 기능과 유사한 pyenv. (이 작업은 UV_PYTHON_INSTALL_DIR 환경 변수는 다음을 구성합니다. Python (장착 위치)

  • 사용 가능한 버전 및 설치된 버전 목록(uv python list):
    # 列出已安装和当前使用的版本
    uv python list
    # 显示所有可供下载的补丁版本
    # uv python list --all-versions
    # 只显示已安装的版本
    uv python list --only-installed
    
  • Python 버전 설치(uv python install):
    # 安装最新的稳定版 (如果尚未安装)
    uv python install
    # 安装特定版本
    uv python install 3.11.5
    # 安装 3.10 系列的最新可用版
    uv python install 3.10
    

    uv 은 다운로드한 Python 관리되는 디렉토리에 설치(uv python dir 경로를 볼 수 있는 조건은 다음과 같습니다. UV_PYTHON_INSTALL_DIR 영향).

  • Python 버전 제거(uv python uninstall):
    uv python uninstall 3.10.8
    # 卸载 3.11 系列所有已安装版本
    uv python uninstall 3.11
    
  • 프로젝트 파이썬 버전 수정(uv python pin):
    현재 디렉토리에서 생성 또는 업데이트 .python-version 파일을 사용하여 프로젝트가 Python 버전.

    uv python pin 3.11
    

    그 너머 uv venvuv runuv sync 를 입력하면 다른 명령이 이 버전을 우선적으로 찾아서 사용합니다.

  • 파이썬 인터프리터 찾기(uv python find):
    # 查找匹配 3.12 的 Python 解释器路径
    uv python find 3.12
    

글로벌 도구 관리(uv tool)

uv 다음과 같을 수 있습니다. pipx 항상 그렇듯이 글로벌 Python CLI 도구에 저장하고 각 도구를 별도의 환경에 격리하여 종속성 충돌을 방지할 수 있습니다. (마찬가지로 도구의 저장 위치는 UV_TOOL_INSTALL_DIR 환경 변수 구성)

  • 실행 도구(애드혹 구현 등) uv tool run 어쩌면 uvx):
    필요한 경우 도구를 일시적으로 다운로드하여 실행하고 실행 후에는 보관하지 않습니다. 일회성 도구에 매우 유용합니다.uvx be uv tool run 축약된 형태입니다.

    # 运行 ruff 检查当前目录,临时下载 ruff
    uv tool run ruff check .
    # 使用简写 uvx
    uvx ruff check .
    # 如果命令名 (http) 和包名 (httpie) 不同,使用 --from
    uvx --from httpie http https://example.com
    
  • 글로벌 도구 설치(uv tool install):
    도구와 해당 종속성을 uv 관리되는 독립 실행형 환경을 설정하고 해당 실행 파일을 사용자 경로에 연결합니다(터미널을 다시 시작하거나 PATH (직접 호출할 수 있도록). 이는 pipx install.

    uv tool install black
    uv tool install httpie
    

    설치가 완료되면 이론적으로는 어디서나 바로 실행할 수 있습니다. black . 어쩌면 http https://example.com.

  • 설치된 도구 목록(uv tool list):
    uv tool list
    
  • 업그레이드 도구(uv tool upgrade):
    uv tool upgrade black
    # 升级所有已安装工具
    # uv tool upgrade --all
    
  • 제거 도구(uv tool uninstall):
    uv tool uninstall black
    
  • 도구 설치 디렉터리 보기(uv tool dir):
    시연 uv 글로벌 도구와 해당 환경이 저장되는 루트 경로( UV_TOOL_INSTALL_DIR 영향).

캐시 관리(uv cache)

uv 글로벌 캐시를 사용하면 패키지 다운로드 및 빌드 프로세스의 속도를 높일 수 있습니다. (캐시 위치는 다음을 통해 액세스할 수 있습니다. UV_CACHE_DIR 환경 변수 구성)

  • 캐시 지우기(uv cache clean):
    모두 삭제 uv 캐시된 콘텐츠. 이는 잠재적인 캐시 오염 문제를 해결하거나 디스크 공간을 확보하는 데 사용할 수 있습니다.

    uv cache clean
    
  • 캐시 디렉터리 표시(uv cache dir):
    현재 보기 uv 캐시 파일이 저장되는 위치( UV_CACHE_DIR 영향).

단일 스크립트 프로젝트 관리

일부 간단한 위젯이나 스크립트의 경우uv 프로젝트 메타데이터와 종속성을 프로젝트에 직접 임베드하는 매우 가벼운 관리 방식을 지원합니다. Python 를 스크립트 헤더의 특수 주석 블록에 추가합니다.

  1. 초기화 스크립트(uv init --script):
    # 创建一个名为 my_script.py 的脚本,并指定 Python 版本要求
    uv init --script my_script.py --python ">=3.10"
    

    이것은 my_script.py 파일 시작 부분에 다음과 유사한 댓글 블록이 생성됩니다:

    #!/usr/bin/env python
    # /// script
    # requires-python = ">=3.10"
    # dependencies = [
    # ]
    # ///
    import sys
    def main() -> None:
    print(f"Hello from {sys.argv[0]}!")
    if __name__ == "__main__":
    main()
    
  2. 스크립트 종속성 추가/제거(uv add/remove --script):
    직접 사용 가능 add 어쩌면 remove 주문과 함께 --script 매개변수를 사용하여 스크립트 헤더의 종속성 목록을 수정할 수 있습니다.

    # 为 my_script.py 添加 requests 依赖
    uv add --script my_script.py requests
    # 从 my_script.py 移除 requests 依赖
    uv remove --script my_script.py requests
    

    이러한 명령은 스크립트 파일 헤더의 dependencies 목록.

  3. 스크립트 실행(uv run):
    직접 사용 uv run 스크립트를 실행할 수 있습니다.

    uv run my_script.py
    

    uv 는 스크립트 헤더의 메타데이터를 자동으로 읽고, 필요에 따라 임시 가상 환경을 생성하고, 그 안에 선언된 종속성을 설치한 다음 스크립트를 실행합니다. 이 접근 방식은 독립된 단일 스크립트를 배포하는 데 이상적입니다. Python 도구 스크립트.

향후 전망 및 권장 사항

uv 의심할 여지 없이 야심차고 매우 빠르게 성장하고 있는 프로젝트입니다. 다음을 기반으로 합니다. Rust 성능상의 이점과 잘 설계된 통합 인터페이스 덕분에 Python 개발자의 패키지 및 환경 관리 경험. 핵심 가치는 다음과 같습니다.템포노래로 응답준수.

망설이지 말고 (실행하세요.) uv 비교적 최근에 구축된 에코시스템(예: IDE 심층 통합, 타사 튜토리얼 리소스)은 여전히 빠르게 성장하고 있으며 활발한 반복 작업으로 인해 버전 간에 명령이나 동작이 약간 조정될 수 있습니다(변경 로그를 계속 주시하는 것이 좋습니다).

하지만 당분간은요.uv 핵심 기능은 매우 안정적이고 견고합니다.

제안:

  • 와 관련하여수신 Python 스포츠 이벤트직접 사용을 적극 권장합니다. uv. 시작부터 산뜻하고 효율적인 관리 환경을 제공합니다.
  • 그런 분들을 위해기존 툴체인(예 pip + virtualenv + pip-tools (복합적인) 복잡성 또는 성능 문제가 만연합니다.개발자와 팀의 수입니다.uv 는 매우 매력적인 대안이며 시간을 투자하여 평가하고 마이그레이션을 시도해 볼 가치가 있습니다.
  • 깊이 있게 사용하시는 분들을 위해 Poetry 어쩌면 PDM 의 특정 고급 기능(예: 복잡한 플러그인 시스템, 세분화된 릴리스 프로세스 관리)에 의존하는 경우 마이그레이션에 대해 보다 신중한 평가가 필요할 수 있습니다. uv 속도와 단순성 대비 특정 기능의 잠재적 손실 가능성.

uv 는 빠르게 Python 개발 워크플로우에서 주목할 만한 존재로, 그 등장은 ruff 예를 들어 Python 커뮤니티는 새로운 도구 혁신의 시동을 걸었습니다. 커뮤니티의 미래는 우리가 계속 주목할 가치가 있습니다.

© 저작권 정책
AiPPT

관련 문서

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...