Один инструмент вместо четырёх
В 2018-2023 годах рабочий стек Python-разработчика включал: pyenv (для управления версиями Python), pip (для пакетов), virtualenv или venv (для изоляции), pip-tools или poetry (для воспроизводимых сборок). Каждый со своим конфигом, своим стилем команд, своими багами.
В 2024 году появился
uvuv за время одного pip install requests успевает собрать весь dependency-граф крупного проекта.
В этом курсе мы используем только uv. Если у вас уже стоят pyenv, pipx, poetry — оставьте их, мешать не будут, мы их просто не используем.
Установка uv
macOS / Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows: ты работаешь в WSL2/Ubuntu (как в Ступени 0), поэтому ставь uv там же, командой для Linux/macOS, а не в PowerShell. Открой свой терминал Ubuntu и выполни ту же самую команду:
curl -LsSf https://astral.sh/uv/install.sh | sh
После установки откройте новый терминал и проверьте:
uv --version
Должна напечататься версия, например uv 0.5.x или новее. Если команда не находится — закройте и откройте терминал заново, скрипт прописал uv в PATH для нового shell.
Установка Python 3.13
uv сам ставит Python — никаких отдельных скачиваний с python.org:
uv python install 3.13
Это скачает официальный
uv. Установка занимает 5-10 секунд.
Проверьте:
uv python list
Увидите список доступных Python-версий — установленные с галочкой.
Первый проект
Создадим проект, в котором будем работать первое время:
mkdir python-01-playground
cd python-01-playground
uv init --python 3.13
Команда uv init создаст:
pyproject.toml— манифест проекта (название, версия, зависимости)..python-version— пин на Python 3.13 (uv будет использовать именно эту версию здесь).main.py— простой стартовый файлprint("Hello!").README.md— пустая заготовка..gitignore— стандартный gitignore для Python.
Запустим:
uv run main.py
Первая команда uv run создаст виртуальное окружение в .venv/, установит туда Python 3.13 (если ещё не) и выполнит скрипт. Дальше каждый uv run будет молниеносно стартовать.
Никогда не активируйте виртуальное окружение командой source .venv/bin/activate, как учили в старых курсах. С uv это не нужно — uv run сам подхватывает окружение проекта. Меньше шансов запустить скрипт не там, где надо.
Добавим зависимость
Попробуем установить пакет:
uv add requests
uv add добавит requests в pyproject.toml, обновит lockfile uv.lock и поставит библиотеку в .venv/. Скорость — обычно меньше секунды.
Проверим, что работает:
uv run python -c "import requests; print(requests.__version__)"
Должна напечататься версия requests (например, 2.32.x).
Что мы сделали
За 5 команд у вас на машине:
- Установлен
uv— один бинарник на все случаи Python. - Установлен Python 3.13 — целевая версия курса.
- Создан изолированный проект с воспроизводимыми зависимостями через
pyproject.toml+uv.lock. - Установлен первый пакет
requests, готовый к использованию.
Никаких пользовательских настроек, никаких ~/.bashrc патчей, никакого глобального pip install. Современный Python-стек 2026 года выглядит так.
Упражнение
Создайте новый файл hello.py в папке проекта со следующим содержимым:
import sys
import platform
print(f"Python: {sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro}")
print(f"Platform: {platform.system()} {platform.machine()}")
Запустите его командой uv run hello.py. Ожидаемый вывод — две строки. Первая должна начинаться с Python: 3.13. Если получили другую версию — проверьте .python-version в проекте.
В следующем уроке — как эффективно учиться по этому курсу.