Python Компания Eco никогда не испытывала недостатка в средствах управления пакетами и экологического менеджмента, от классических pip, иvirtualenv до (времени) pip-tools, иcondaа затем модернизация Poetry, иPDM И т. д. Каждый инструмент имеет свою область специализации, но это также часто делает инструментарий разработчика фрагментированным и сложным.

Теперь из Astral Компания (известная) Python Линтер Ruff (создатель uv Перекресток открыл новые возможности. В этом продукте используется Rust инструменты, написанные на этом языке, стремится стать Быстрая, унифицированная и удобная для разработчиков Python Менеджер по работе с пакетами и проектами. Его цель ясна: опираться на Rust экологически чистый Cargo Успешный опыт компании обеспечивает универсальное решение.uv Он не только быстрый, но и интегрирует управление окружением, установку пакетов, разрешение зависимостей, управление проектами и многое другое.

Почему именно ультрафиолет?

По сравнению с существующими инструментамиuv Предлагая более современную и эффективную альтернативу своим основным преимуществам:

  1. Значительное повышение скорости: Основано на Rust оптимизация во время компиляции и эффективная параллельная обработка.uv При выполнении таких распространенных операций, как разрешение зависимостей и установка пакетов, он работает быстрее, чем традиционные инструменты, такие как pip возможно Poetryчто зачастую может быть на порядки быстрее. Встроенный эффективный механизм глобального кэширования также делает повторяющиеся операции практически мгновенными. За этим стоит Rust Особенности языка (например, бесстрашный параллелизм благодаря безопасности памяти) и высококачественные базовые библиотеки (например, the Tokio, иReqwest) Кредиты.
  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 Очень просто. Официальная рекомендация - использовать предоставленный скрипт установки, поскольку он не зависит от существующих Python Окружающая среда. Конечно, по pip или System Package Manager также являются приемлемыми вариантами.

  • Рекомендуемый метод (кроссплатформенный скриптинг)::
    # 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) обычно устанавливаются на один и тот же диск.

  • Использование Cargo (требуется среда Rust)::
    cargo install uv --locked --git https://github.com/astral-sh/uv
    

    uv будет установлен в Cargo (используется в форме номинального выражения) bin Каталог. Это можно сделать, установив параметр CARGO_HOME Переменная окружения задает весь .cargo каталог (содержащий загруженный crates и скомпилированные продукты) перекочевали на несистемные диски.

После завершения установки запустите uv --version возможно uv help чтобы убедиться, что установка прошла успешно.

Настройка места хранения УФ-данных (Дополнительно)

По умолчаниюuv Он будет кэшировать, загружать Python версия, а также через uv tool install Установленные глобальные инструменты хранятся по умолчанию в каталоге пользователя (обычно на системном диске). Если вы хотите хранить их на другом диске (например, на диске D: диск), чтобы сэкономить место на системном диске или уменьшить SSD Write, который можно установить с помощью настройкипеременная окружениячтобы это произошло.

Вот несколько ключевых переменных окружения:

  • 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. Нажмите OK, чтобы закрыть все диалоговые окна.
    8. crux:: Требуетсяснова открыть 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 / macOS (постоянная установка):
    топологический 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 При управлении проектом важно понимать следующие основные понятия:

  • 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 Загрязнение окружающей среды.

Управление проектами на Python с помощью UV

Ниже показан полный процесс использования 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 :: Воля uv.lock Состояние в файле синхронизируется с .venv Виртуальные среды.

Запустите код и команды (uv run)

uv run быть 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 или аналогичные команды) значительно уменьшилось. Возможно, в основном в той же самой сессии Shell, которая вам нужна:

  • Частое интерактивное выполнение множества команд, зависящих от виртуальной среды (например, ввод непосредственно в 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          # 以树状结构显示依赖关系
    

Управление версиями Python (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
    
  • Исправлена версия проекта Python (uv python pin):
    Создание или обновление в текущем каталоге .python-version файл, в котором объявляется, что проект должен использовать Python Версия.

    uv python pin 3.11
    

    за пределами uv venvuv runuv sync и другие команды будут предпочтительно находить и использовать эту версию.

  • Найдите интерпретатор Python (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 быть 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 Инструмент Script.

Перспективы и рекомендации

uv Это, несомненно, амбициозный и чрезвычайно быстро развивающийся проект. Он опирается на Rust Преимущества производительности и хорошо продуманный унифицированный интерфейс обещают значительно улучшить Python Опыт управления пакетами и средой разработчика. Основными ценностями компании являютсятемпответить пениемсоответствовать.

(действуйте и делайте) без колебаний uv Относительно молодая экосистема (например, глубокие интеграции с IDE, сторонние обучающие ресурсы) все еще быстро развивается, и команды или поведение могут быть слегка подправлены между версиями из-за активного обновления (рекомендуется следить за журналом изменений).

Но на данный момент.uv Основная функциональность была достаточно стабильной и надежной.

предложение:

  • в отношениивходящие Python спортивное мероприятиеНастоятельно рекомендуется напрямую принять uv. С самого начала он обеспечивает освежающий и эффективный опыт управления.
  • Для тех.Страдает от существующих цепочек инструментов (например. pip + virtualenv + pip-tools (Комбинированный) сложность или проблемы с производительностью являются проблемойразработчиков и команд.uv это очень привлекательная альтернатива, и стоит потратить время на ее оценку и переход на новую версию.
  • Для тех, кто уже давно использует Poetry возможно PDM и полагаются на свои специфические расширенные возможности (например, сложные системы плагинов, тонкое управление процессом выпуска), миграция может потребовать более тщательной оценки, взвешивания uv Скорость и простота в сравнении с потенциальной потерей специфических функций.

uv быстро становится Python С ним придется считаться в рабочих процессах разработки, и его появление может быть столь же важным, как и ruff Как и в случае с Python Сообщество инициировало новый виток инноваций в области инструментов. Его будущее заслуживает нашего постоянного внимания.

© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...