Виртуальные окружения и изоляция зависимостей
Python
Senior
Яндекс
Почему в production-проектах важно использовать виртуальные окружения? Чем `venv` отличается от `virtualenv` и когда имеет смысл использовать альтернативы вроде `poetry`/`pipenv`?
Ответы
venv и менеджеры зависимостей
Виртуальное окружение изолирует зависимости проекта от глобальной системы: разные проекты могут использовать разные версии библиотек.
`venv` — встроенный модуль Python 3, лёгкий и стандартный. `virtualenv` появился раньше, быстрее создаёт окружения и имеет больше опций, но сейчас часто достаточно `venv`.
Инструменты вроде `poetry`, `pipenv` добавляют:
- декларативное описание зависимостей (`pyproject.toml`/`Pipfile`),
- lock-файлы,
- удобные команды для управления зависимостями и публикацией пакетов.