«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Освоение управления проектами Python с помощью uv PartПора отказаться от поэзии

Освоение управления проектами Python с помощью uv PartПора отказаться от поэзии

Опубликовано 4 ноября 2024 г.
Просматривать:377

Mastering Python Project Management with uv PartIt

Вы устали манипулировать несколькими инструментами, такими как pip, virtualenv, conda, поэзия и pyenv, только для того, чтобы контролировать среду Python и зависимости? Вы не одиноки! Управление проектами Python может показаться головной болью, особенно со всеми различными менеджерами пакетов и инструментами, с которыми вам приходится спорить.

Введите uvУниверсальное виртуальное окружение. Думайте об этом как об универсальном менеджере пакетов, предназначенном для оптимизации и ускорения процесса разработки Python.


Немного предыстории

uv черпает вдохновение из Rye, еще одного современного менеджера по упаковке, чтобы объединить лучшие функции pip, pip-tools, pyenv, virtualenv и поэзии. Созданный с использованием Rust, uv не просто быстр, но и очень эффективен, упрощая все: от управления зависимостями до создания виртуальных сред.

Цель УФ

Короче говоря, УФ – это консолидация. Зачем переключаться между несколькими инструментами, если можно использовать один унифицированный интерфейс? Он призван устранить трудности при разработке Python, предлагая вам более последовательный и быстрый способ управления вашими проектами. И это также невероятно быстро! Это открывает новые двери для динамичного управления


1. Переносимый код со встроенными метаданными сценария.

Давайте поговорим о зависимостях

Одна из самых интересных особенностей uv — это возможность добавлять зависимости непосредственно в ваш скрипт Python. Представьте, что у вас есть такой простой скрипт:

# app.py
import requests
from rich.pretty import pprint

response = requests.get("https://peps.python.org/api/peps.json")
data = response.json()
pprint([(k, v["title"]) for k, v in data.items()][:10])

Запуск этого сценария обычно означает настройку виртуальной среды и установку зависимостей вручную. С помощью uv вы можете встроить все свои зависимости непосредственно в скрипт, сделав его автономным и общим:

$ uv add --script app.py 'requests



Автоматическое создание метаданных

Это добавляет метаданные в файл сценария:

# /// script
# dependencies = [
#   "requests



И всё! Вы можете поделиться этим файлом с кем-то еще, и они смогут просто запустить:

$ uv run app.py

И вуаля — никакой внешней настройки не требуется! И все благодаря скорости и эффективности УФ.


2. Создание виртуальных сред и управление ими

Начало работы с виртуальными средами

По умолчанию uv требует установки пакетов в виртуальных средах, чтобы поддерживать чистоту вашей системы и избегать конфликтов между различными проектами. Создать виртуальную среду с помощью uv просто:

$ uv venv

Это создаст каталог .venv, содержащий изолированную среду. Если вы хотите указать собственный каталог или версию Python, вы можете сделать:

$ uv venv my_env --python 3.9

Среда готова к использованию, и uv автоматически обнаружит ее для всех ваших команд, таких как установка пакетов или запуск скриптов.

Когда использовать uv add или uv pip install

  • Используйте uv add: если вы хотите добавить зависимости в файл pyproject.toml вашего проекта. Это лучше всего подходит, когда вы разрабатываете проект и хотите отслеживать все зависимости, что делает проект легко доступным для совместного использования и воспроизводимости. Мы расскажем об этом в следующем посте, следите за обновлениями!

    $ uv add fastapi
    

    Это обновит ваш pyproject.toml и заблокирует версию в uv.lock.

  • Используйте установку uv pip: если вы хотите установить пакеты для быстрого использования без изменения файла проекта или для глобальных инструментов, где вам не нужно отслеживать их в pyproject.toml. Думайте об uv pip как о немедленной, разовой установке.

    $ uv pip install requests
    

Выбор правильной команды гарантирует правильное управление вашим проектом, а также удобство его совместного использования или развертывания.


3. Блокировка версий для воспроизводимости

Когда-нибудь ваш код ломался из-за обновлений?

Мы все с этим сталкивались: сегодня ваш код работает, а завтра ломается из-за обновления пакета. С помощью uv вы можете предотвратить это, заблокировав версии пакета, чтобы обеспечить согласованность и воспроизводимость:

[tool.uv]
exclude-newer = "2023-10-16T00:00:00Z"

Таким образом, даже если появятся новые версии ваших зависимостей, ваш проект останется стабильным. Идеально подходит для долгосрочных проектов, где сюрпризы вам не по карману!


4. Управление версиями Python

Разные проекты, разные версии Python? Без проблем!

Многим разработчикам приходится работать над несколькими проектами, для которых требуются разные версии Python. uv позволяет переключать версии так же просто, как:

$ uv python install 3.8 3.9 3.10

После установки версий переключение между ними происходит без проблем:

$ uv run --python 3.10 app.py

И если вы хотите заблокировать определенную версию для проекта:

$ uv python pin 3.9

Больше не нужно жонглировать командами pyenv — uv берет на себя всю тяжелую работу за вас.


5. Попрощайтесь с Пипом Хасслсом

Это пип, но быстрее и лучше

uv обеспечивает плавность работы, но с повышенной производительностью. Установка пакетов проста:

$ uv pip install flask

Нужно добавить дополнительные зависимости или установить непосредственно из репозитория GitHub? Не парься:

$ uv pip install 'torch>=1.10.0' "git https://github.com/astral-sh/ruff"

Больше не нужно ждать медленной установки — uv выполняет свою работу быстро и эффективно.


6. Управляйте инструментами CLI глобально и легко

От черного до ерша: получите свои инструменты без проблем

Независимо от того, проверяете ли вы код или форматируете файлы, uv упрощает установку инструментов CLI:

  • Во всем мире:

    $ uv tool install ruff
    
  • Локально в рамках проекта:

    $ uv add ruff
    
  • Запуск временных команд без глобальной установки:

    $ uvx black my_code.py
    

Попрощайтесь с конфликтами пакетов и загрязнением окружающей среды — просто запускайте свои инструменты в любое время и в любом месте.


Если вы хотите ускорить разработку Python и хотите перестать бороться с множеством инструментов, uv — ваш ответ. Благодаря оптимизированным командам, воспроизводимым средам и эффективному управлению пакетами uv превращает разработку на Python в удовольствие, а не в рутинную работу.

Готовы попробовать ультрафиолет? ? Начните сегодня и испытайте лучший способ управления своими проектами Python.


Следите за обновлениями во второй части, где мы углубимся в расширенные функции, такие как использование pyproject.toml, управление глобальной и локальной установкой инструментов, а также то, как UV может стать вашим лучшим другом при управлении сложными средами.

Удачного программирования! ?✨

Более подробную информацию и полную документацию можно найти в документации по uv.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/thomas_bury_b1a50c1156cbf/mastering-python-project-management-with-uv-part1-its-time-to-ditch-poetry-3bi0?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с Study_golang@163 .comdelete
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3