Ответ
Виртуальное окружение (virtual environment) в Python — это изолированное пространство для конкретного проекта, позволяющее управлять его зависимостями отдельно от глобальной системы и других проектов. Оно содержит свою копию интерпретатора Python, утилиты pip и установленные сторонние библиотеки.
Почему это важно:
- Изоляция зависимостей: Разные проекты могут требовать разные версии одной и той же библиотеки без конфликтов.
- Чистота глобального окружения: Глобальная установка Python остается незагроможденной проектными зависимостями.
- Упрощение развертывания: Список зависимостей легко экспортируется в
requirements.txtдля воспроизводимости окружения на других машинах.
Пример создания и активации:
# Создание виртуального окружения с именем 'myenv'
python -m venv myenv
# Активация окружения (Linux/macOS)
source myenv/bin/activate
# Активация окружения (Windows PowerShell)
. myenvScriptsActivate.ps1
# Активация окружения (Windows Command Prompt)
myenvScriptsactivate.bat
После активации все пакеты, устанавливаемые через pip, будут помещены только в текущее виртуальное окружение. Для выхода из окружения используется команда deactivate.
Ответ 18+ 🔞
Слушай, а давай про эти ваши виртуальные окружения в Python, а то народ путается, как в тёмной комнате хуй с горы ищет.
Вот представь, блядь: у тебя куча проектов, и в каждом своя хитрая жопа с зависимостями. Один проект требует старую версию библиотеки, потому что код писался ещё когда динозавры по земле ходили, а другой — свежую, с наворотами. Если всё ставить в одно место, в глобальный Python, получится пиздец и бардак, они друг другу ебальники поотбивают. Вот для этого и придумали виртуальные окружения — это такая изолированная песочница, где каждый проект живёт своей жизнью и никого не ебёт.
Зачем это, спросишь? Да овердохуища причин:
- Чтобы зависимости не дрались. В одном углу — Django версии 2.2, в другом — 4.0. И оба счастливы, как слоны в посудной лавке, потому что не знают друг о друге.
- Чтобы глобальный Python не превратился в помойку. Ты же не хочешь, чтобы твоя система была засрана сотней библиотек, половину из которых ты уже и не помнишь зачем ставил?
- Чтобы можно было сказать коллеге: «На, разверни». Сохранил список нужных пакетов в файлик
requirements.txt, отдал, и у него всё встаёт как надо, без танцев с бубном и криков «а у меня работает!».
Ну и как этим пользоваться, ёпта? Всё проще, чем кажется:
# Создаёшь себе такую изолированную камеру хранения, назовём её 'myenv'
python -m venv myenv
# Теперь надо в неё залезть. На Линуксе или Маке — вот так:
source myenv/bin/activate
# Если ты с Винды и сидишь в PowerShell:
. myenvScriptsActivate.ps1
# А если в старой доброй командной строке (cmd), то вот так:
myenvScriptsactivate.bat
Как только активировал — ты внутри. Теперь все команды pip install будут ставить пакеты строго в эту песочницу, и глобальному Pythonу будет похуй. Закончил работать — просто напиши deactivate, и тебя выкинет обратно в реальный мир. Красота, а не жизнь!