Что такое виртуальное окружение? Зачем оно? Какие бывают аналоги?
Роман
Что это такое
Виртуальное окружение - это изолированное окружение среды (в нашем случае это окружение Python), которое позволяет нам использовать определенные версии приложений.
Зачем оно мне?
Предположим, сейчас ты работаешь над несколькими проектами одновременно, и для каждого из них по тем или иным причинам есть свои определенные особенгсти версий пакетов. Например, на одном проекте у тебя Джанга 1.10, на втором - 1.8 , а на третьем - 1.5, да и в придачу Питон 2-й версии. При этом версии приложений менять ну никак нельзя - придется много чего переделывать да и вообще. Вот для таких ситуаций нам как раз и пригодитя виртуальное окружение, позволяющее использовать разные версии приложений.
Что использовать
Все пакеты, работающие с виртуальным окружением решают одну проблему - они позволяют проектам, которые имеют различные (и часто конфликтующие) зависимости, сосуществовать на одной системе.
Virtualenv
virtualenv - стандартный пакет для работы с виртуальным окружением. Используется вместе с virtualenvwrapper для более удобной работы. Установить и ознакомиться подробнее можно в энциклопедии Девмана
Аналоги
Хоть venv и является самым популярным выбором, существуют другие не менее интересные варианты.
Pyenv
Инструмент, позволяющий изолированно использовать различные версии Python. Например, если тебе нужно запустить твой код на разных версиях Питона (2.6, 2.7, 3.3…), то это то, что тебе нужно. Для создания полноценного изолированного окружения следует использовать пакет pyenv-virualenv, позволющий пользоваться pyenv и virtualenv одновременно. Список команд с их описанием здесь(на английском).
Установка
Клонируем репозиторий
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
Устанавливаем переменные окружения (если у вас Linux, /.bash_profile
меняем на ```/.bashrc )
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
Инициализируем загрузку pyenv в терминале
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
Перезапускаем терминал
Команды
Устанавливаем Питон
pyenv install 2.7.9
pyenv install 3.4.3
Делаем rehash после установки
pyenv rehash
Задаем версию Питона для определенной директории. Версия хранится в файле .python-version
pyenv local 2.7.6
Задаем версию глобально. Будет заменена в случае, если задан файл .python-version
pyenv global 3.3.2
Conda
Conda - пакетный менеджер, который также позволяет нам создавать виртуальные окружения.
Установка
Установим пакет Miniconda - это всего лишь conda и ее зависимости. Скачиваем файл по ссылке. Запускаем файл в терминале
bash Miniconda3-latest-Linux-x86_64.sh
, ждем завершения установки, перезапускаем терминал. ЧТобы убедиться в том, что установка произошла успешно, выполни conda list
. Если все хорошо, ты увидишь пакеты, которые были установлены.
Работа с виртуальным окружением
Создаем виртуальное окружение
conda create -n yourenvname python=x.x
Активируем
source activate yourenvname
Деактивируем
source deactivate
Удаляем окружение
conda remove -n yourenvname -all
Установку пакетов можно произвоздить как с помощью conda, так и pip. Pip устанавливается вместе с зависимостями.
Попробуйте бесплатные уроки по Python
Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.
Переходите на страницу учебных модулей «Девмана» и выбирайте тему.