JustCaptain kod-buduschego
llm/change-23ccdc
Перейти к файлу
Код
kod-buduschego Python 2025-20263.8. Виртуальное окружениеMATERIAL.md
anc update c70a58f 8 октября 2026 г.
MATERIAL.md

Методический материал: Виртуальные окружения Python

Цель

Виртуальное окружение (Virtual Environment) позволяет создавать изолированное пространство для проекта Python, в котором устанавливаются собственные версии библиотек независимо от других проектов и системного Python.

Преимущества:

  • изоляция зависимостей проектов;
  • предотвращение конфликтов версий пакетов;
  • воспроизводимость среды разработки;
  • упрощение развертывания приложений.

⸻

  1. Классическое виртуальное окружение (venv)

Создание окружения

Перейдите в каталог проекта:

cd my_project

Создайте виртуальное окружение:

python -m venv .venv

Рекомендуемое имя каталога окружения:

.venv

Структура проекта:

my_project/
├── .venv/
├── main.py
└── requirements.txt

⸻

Активация окружения

Linux / macOS

source .venv/bin/activate

Windows (PowerShell)

.venv\Scripts\Activate.ps1

Windows (CMD)

.venv\Scripts\activate.bat

После активации в терминале появляется префикс:

(.venv)

⸻

Установка пакетов

pip install requests

Проверка установленных пакетов:

pip list

⸻

Сохранение зависимостей

Создание файла зависимостей:

pip freeze > requirements.txt

Пример:

requests==2.32.4
urllib3==2.5.0
certifi==2025.8.3

⸻

Установка зависимостей из файла

pip install -r requirements.txt

⸻

Деактивация окружения

deactivate

⸻

Удаление окружения

Достаточно удалить каталог:

rm -rf .venv

или в Windows:

Remove-Item .venv -Recurse -Force

⸻

  1. Современный подход: uv

Что такое uv

uv — современный менеджер пакетов и окружений для Python, разработанный компанией Astral.

Преимущества:

  • высокая скорость работы;
  • замена pip, venv и pip-tools;
  • автоматическое управление окружениями;
  • поддержка lock-файлов;
  • совместимость с PyPI.

⸻

Установка uv

Linux / macOS

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Проверка установки:

uv --version

⸻

Создание нового проекта

uv init my_project

Структура:

my_project/
├── pyproject.toml
├── .python-version
└── README.md

⸻

Создание виртуального окружения

uv venv

Будет создан каталог:

.venv/

⸻

Активация окружения

Linux / macOS

source .venv/bin/activate

Windows PowerShell

.venv\Scripts\Activate.ps1

⸻

Установка пакетов

uv add requests

В результате:

  • пакет устанавливается;
  • обновляется pyproject.toml;
  • создаётся uv.lock.

Пример:

[project]
dependencies = [
"requests>=2.32.4",
]

⸻

Установка зависимостей проекта

На новой машине:

uv sync

Команда:

  • создаёт окружение;
  • устанавливает зависимости;
  • использует версии из uv.lock.

⸻

Удаление зависимости

uv remove requests

⸻

Запуск программы без активации окружения

uv run main.py

или

uv run python main.py

Пример:

uv run pytest

⸻

Обновление зависимостей

uv lock --upgrade

или

uv sync --upgrade

⸻

Сравнение venv и uv

Возможность venv + pip uv
Создание окружения Да Да
Установка пакетов pip uv
Lock-файл Нет Да
Работа через pyproject.toml Ограниченно Да
Высокая скорость Нет Да
Автоматическая синхронизация Нет Да
Запуск без активации Нет Да

⸻

Рекомендуемая практика

Для новых проектов:

uv init project
cd project
uv add requests
uv add pytest
uv run python main.py

Для поддержки старых проектов:

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

⸻

Вывод

  • venv + pip — классический стандарт, присутствует во всех установках Python.
  • uv — современный инструмент для разработки, управления зависимостями и воспроизводимых сборок.
  • Для новых проектов рекомендуется использовать uv.
  • Для сопровождения существующих проектов необходимо знать оба подхода.