Ответ
В Python для создания изолированных окружений используется несколько ключевых инструментов, каждый со своими особенностями.
Почему это важно? Виртуальные окружения позволяют управлять зависимостями для разных проектов, избегая конфликтов версий пакетов в глобальной установке Python.
Основные инструменты:
-
venv- Описание: Стандартный, встроенный в Python (начиная с версии 3.3) модуль. Легковесный и не требует установки.
- Идеально для: Простых проектов, где не нужно управлять разными версиями Python.
-
Пример:
# Создание окружения python -m venv myenv # Активация (Linux/macOS) source myenv/bin/activate # Активация (Windows) .myenvScriptsactivate
-
virtualenv- Описание: Сторонний пакет, предшественник
venv. Более гибкий, быстрый и поддерживает старые версии Python (2.x). - Идеально для: Проектов, требующих поддержки устаревших версий Python.
- Описание: Сторонний пакет, предшественник
-
conda- Описание: Система управления пакетами и окружениями, популярная в Data Science. Управляет не только Python-пакетами, но и системными зависимостями (например, CUDA, MKL).
- Идеально для: Научных вычислений, анализа данных и проектов со сложными не-Python зависимостями.
-
Пример:
# Создание окружения с указанием версии Python conda create --name myenv python=3.9 # Активация conda activate myenv
-
PoetryиPipenv- Описание: Современные инструменты высокого уровня, которые объединяют управление пакетами (через
pyproject.tomlилиPipfile) и виртуальными окружениями. Обеспечивают детерминированные сборки с помощью lock-файлов. - Идеально для: Разработки приложений, где важна строгая фиксация версий зависимостей и воспроизводимость окружения.
- Описание: Современные инструменты высокого уровня, которые объединяют управление пакетами (через
Ответ 18+ 🔞
А, ну вот, опять про эти ваши виртуальные окружения, блядь! Слушай, а ты знаешь, зачем это всё, вообще? А чтобы твои проекты, как та собака Муму, не начали друг друга топить в одном общем пруду глобальных пакетов! Конфликт версий — это пиздец, чувак, одна хуйня перестаёт работать из-за другой.
Короче, инструментов дохуя, но я тебе про основные, а то мозг сейчас ебнешься.
1. venv — стандартный, как три рубля.
Этот, блядь, встроенный уже, с третьего питона. Легкий, без заморочек. Создал — и похуй. Для простых проектов — то, что надо.
# Вот так вот, на раз-два
python -m venv myenv
# Активируешь (линукс/мак)
source myenv/bin/activate
# А на винде, блядь, вот так
.myenvScriptsactivate
Вот и вся магия, ебушки-воробушки.
2. virtualenv — старый, но охуенный дед.
Появился раньше, чем venv. Быстрее, гибче, и, главное, на питон 2.х работает, если тебе вдруг, блядь, в прошлое захотелось.
3. conda — это уже ёперный театр для учёных.
Это не просто для питона, это, сука, целая вселенная! Там и CUDA, и какие-то математические библиотеки — в общем, для data science, где зависимости сложнее, чем сюжет "Игры престолов".
# Создаёшь с нужной версией питона, чтоб не гадать
conda create --name myenv python=3.9
# И — активируй!
conda activate myenv
4. Poetry и Pipenv — это уже для параноиков и перфекционистов.
Современные штуки, которые не только окружение создадут, но и все зависимости в lock-файл запрут, как в сейф. Воспроизводимость — овердохуища. Идеально, когда нужно, чтобы через год всё собралось так же, а не вылезло "ой, а у вас версия не та, блядь".
Вот, выбирай, что тебе по душе. Главное — не смешивай всё в одну кучу, а то получится, как у того Герасима: вроде хотел как лучше, а в итоге всех утопил, сука.