общие команды uv
Python
Компания Eco никогда не испытывала недостатка в средствах управления пакетами и экологического менеджмента, от классических pip
, иvirtualenv
до (времени) pip-tools
, иconda
а затем модернизация Poetry
, иPDM
И т. д. Каждый инструмент имеет свою область специализации, но это также часто делает инструментарий разработчика фрагментированным и сложным.
Теперь из Astral
Компания (известная) Python
Линтер Ruff
(создатель uv
Перекресток открыл новые возможности. В этом продукте используется Rust
инструменты, написанные на этом языке, стремится стать Быстрая, унифицированная и удобная для разработчиков Python
Менеджер по работе с пакетами и проектами. Его цель ясна: опираться на Rust
экологически чистый Cargo
Успешный опыт компании обеспечивает универсальное решение.uv
Он не только быстрый, но и интегрирует управление окружением, установку пакетов, разрешение зависимостей, управление проектами и многое другое.
Почему именно ультрафиолет?
По сравнению с существующими инструментамиuv
Предлагая более современную и эффективную альтернативу своим основным преимуществам:
- Значительное повышение скорости: Основано на
Rust
оптимизация во время компиляции и эффективная параллельная обработка.uv
При выполнении таких распространенных операций, как разрешение зависимостей и установка пакетов, он работает быстрее, чем традиционные инструменты, такие какpip
возможноPoetry
что зачастую может быть на порядки быстрее. Встроенный эффективный механизм глобального кэширования также делает повторяющиеся операции практически мгновенными. За этим стоитRust
Особенности языка (например, бесстрашный параллелизм благодаря безопасности памяти) и высококачественные базовые библиотеки (например, theTokio
, иReqwest
) Кредиты. - Полная функциональная интеграция::
uv
Предназначенный быть "швейцарским армейским ножом" в руках разработчиков, он охватывает все: от создания и управления виртуальными средами до установки и блокировки зависимостей (встроенная поддержка).pyproject.toml
совместимостьrequirements.txt
), запускать скрипты, управлять глобальными инструментами и даже устанавливать специальные инструменты.Python
версия полного процесса разработки. - Современное управление проектами: Родная поддержка
pyproject.toml
(стандарт PEP 517/518/621), который является современнымPython
Стандартный профиль проекта де-факто.uv
Способность четко обрабатывать группировки зависимостей (например, зависимости от разработки) и генерировать кросс-платформенныеuv.lock
Заблокированный файл. Этот файл блокировки точно фиксирует конкретные версии и источники всех прямых и косвенных зависимостей, гарантируя, что полностью согласованное окружение может быть перестроено на любой машине в любое время для действительно детерминированной сборки. - Хорошая совместимость::
uv
Предоставляет ссылку наpip
Высокосовместимый командный интерфейс (uv pip ...
) и может понятьrequirements.txt
формат файлов, что позволяет переносить существующие проекты наuv
Процесс проходит относительно гладко. - Активное развитие и будущее:: По
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 (переменные системного окружения - постоянные настройки):
- существовать
Windows
Найдите в строке поиска "переменные среды". - Нажмите "Редактировать системные переменные окружения".
- В диалоговом окне "Свойства системы" нажмите кнопку "Переменные среды...". кнопка.
- В области "Пользовательские переменные" или "Системные переменные" (рекомендуется использовать пользовательские переменные, если они не нужны всем пользователям) нажмите "Создать ..." .".
- Введите имя переменной (например.
UV_CACHE_DIR
) и значения переменных (таких какD:\uvdata\cache
). - Повторите это для двух других переменных.
- Нажмите OK, чтобы закрыть все диалоговые окна.
- 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
команда (например.add
,sync
,run
) автоматически определяются, и операции выполняются в этой среде, избегая глобального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 venv
, uv sync
)
После инициализации проекта необходимо создать виртуальную среду и синхронизировать состояние зависимостей (даже если это пустая зависимость, при первой синхронизации будет сгенерирован файл uv.lock
).
- Создайте виртуальную среду (
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
Команда (add
,remove
,sync
,run
и т.д.).Ручная активация среды обычно не требуется(математика) родuv
автоматически найдет и использует.venv
. - Синхронизированная среда (
uv sync
)::
Это одна из основных команд, используемых для обеспечения того, чтобы состояние виртуальной среды совпадало с состояниемpyproject.toml
(черезuv.lock
документы) илиrequirements.txt
Файл точно соответствует требованиям. При первом запуске он будет:- получить
pyproject.toml
определения зависимости. - Выполняет разрешение зависимостей.
- создание
uv.lock
Документация. - существовать
.venv
(первоначально в качестве редактируемого пакета может быть доступен только сам проект).
# 在项目根目录运行 uv sync
После выполнения вы увидите
.venv
Каталог создается или обновляется, иuv.lock
Документация. - получить
Управление зависимостями (uv add
, uv remove
, uv 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
список зависимостей в файле, необходимо выполнить следующие два действия, чтобы изменения вступили в силу:uv lock
:: На основеpyproject.toml
Новое содержание пересчитывает зависимости и обновляетuv.lock
Документация.uv sync
:: Воляuv.lock
Состояние в файле синхронизируется с.venv
Виртуальные среды.
Запустите код и команды (uv run
)
uv run
быть uv
Чрезвычайно удобная функция. Она позволяет создать файл в uv
Выполнение в контексте управляемой виртуальной среды Python
скрипт или любую команду.Нет необходимости предварительно активировать среду вручную. Это uv
Одна из ключевых особенностей оптимизированного рабочего процесса, которую стоит освоить.
Принцип работы:
Когда вы выполняете uv run <command> [args...]
Время:
- Автоматическое обнаружение среды::
uv
автоматически найдет текущий каталог и родительский каталог.venv
Виртуальные среды. - Выполнение внутренней конфигурации среды:
- в отношении
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
в верхней части переменных среды. Таким образом, даже если вы не активируете среду, операционная система сможет найти и выполнить инструменты командной строки, установленные в виртуальной среде (такие какpytest
,ruff
).
- в отношении
Как запустить файл 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 Actions
,GitLab 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 list
,uv pip show
,uv 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 venv
,uv run
,uv 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
в специальном блоке комментариев в заголовке сценария.
- Скрипт инициализации (
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()
- Добавьте/удалите зависимости от сценариев (
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
Список. - Запустите скрипт (
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
Сообщество инициировало новый виток инноваций в области инструментов. Его будущее заслуживает нашего постоянного внимания.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...