Короткий ответ Виртуальное окружение — изолированный набор интерпретатора и пакетов для конкретного проекта, который не затрагивает системный Python и другие проекты; без него проекты с конфликтующими версиями одной библиотеки не могут нормально сосуществовать на одной машине. Как это работает подробнее python -m venv .venv создаёт отдельную директорию с собственным site-packages; при активации PATH и sys.prefix переключаются на этот каталог, поэтому pip install ставит пакеты именно туда. Пример кода Что использовать на практике Рекомендация. venv создают отдельно для каждого проекта, коммитят только список зависимостей, а сам каталог .venv добавляют в .gitignore. Для воспроизводимости на других машинах окружение пересоздают из файла зависимостей. Подводные камни Риск. установка пакетов глобально через sudo pip install — ломает системный Python и создаёт конфликты версий между проектами; забывают активировать venv и ставят пакет не туда.