Если вы работаете над несколькими проектами одновременно, требующими разные версии Python и/или разные версии библиотек, то с помощью виртуального окружения можно создать изолированный контейнер с нужными версиями под каждую задачу.
В этой статье мы рассмотрим два варианта создания виртуального окружения: 1) при помощи Anaconda — дистрибутива c предустановленными популярными библиотеками, которым часто пользуются специалисты по работе с Big Data и 2) компактной библиотеки pipenv.
1. Pipenv
Pipenv – это инструмент, предоставляющий все необходимые средства для создания виртуального окружения. Он управляет пакетами проекта через файл pipfile
, работающий как замена requirement.txt
.
В качестве терминала в Windows возьмем на вооружение Git Bash, в MacOs – Homebrew, в Ubuntu – стандартный терминал.
1.1. Установка Pipenv
Создадим проект, используя команду mkdir new-project
, которая создает папку с именем проекта new-project
и перейдем в нее при помощи команды cd
:
Для установки pipenv
пользователи Windows могут ввести следующую команду:
pip install pipenv
В MacOs:
brew install pipenv
В Ubuntu:
pip3 install pipenv
1.2. Создание виртуального окружения
Для создания виртуального окружения воспользуемся командой:
pipenv shell
1.3. Установка и удаление пакетов
В качестве примера установим пакеты requests
и flask
:
pipenv install requests
pipenv install flask
Результат установки:
В качестве примера удалим пакет flask
:
pipenv uninstall flask
1.4. Выход из виртуального окружения
Для деактивации текущего окружения применим команду exit
2. Anaconda
У Anaconda свой менеджер разрешения зависимостей – conda, заменяющий стандартный менеджер пакетов pip
. Также есть возможность создавать несколько изолированных окружений, чем сейчас и займемся.
2.1. Установка Anaconda
На сайте Anaconda выберите нужную ОС, версию Python, скачайте дистрибутив и установите Anaconda.
Забегая чуть вперед, если необходимо обновить Anaconda, откройте Anaconda Promt и введите команду conda update conda
.
Существует два варианта запуска виртуального окружения:
- Через графический интерфейс Anaconda Navigator.
- Через командную строку Anaconda Promt.
В этом руководстве используется ОС Windows, но в других ОС процесс создания виртуального окружения такой же.
2.2. Создание окружения в Anaconda Prompt
Нажмите на иконку Windows, в поле поиска введите Anaconda Prompt
, а затем нажмите Enter
, чтобы открыть ее.
Введите команду conda
, чтобы проверить успешность установки и ознакомиться с основными командами.
2.2.1. Создание виртуального окружения
В следующей команде -n
– флаг, создающий новое окружение с именем env
и определенной версией Python 3.7
conda create -n env python=3.7
2.2.2. Активация окружения
Активируем окружение:
conda activate env
2.2.3. Установка пакетов
Установим numpy
через менеджер conda:
conda install -n env numpy
2.2.4. Список установленных пакетов
Посмотрим, какие пакеты установлены в виртуальном окружении:
conda list
2.2.5. Список всех виртуальных окружений
Список всех созданных окружений выводится командой conda env list
:
2.2.6. Деактивация виртуального окружения
Следующая команда деактивирует текущее окружение env
и изменит его на base
:
conda deactivate
2.2.7. Удаление виртуального окружения
Удалим виртуальное окружение env
со всеми его пакетами:
conda env remove -n env
Убедимся, что окружение удалено, открыв список окружений:
conda env list
2.3. Создание окружения в Anaconda Navigator
Повторите шаги по установке виртуальной среды env
1. Нажмите на иконку Windows, в поле поиска введите Anaconda Navigator
, а затем нажмите Enter
.
2. Выберите вкладку Environments
, где показано виртуальное окружение по умолчанию — base
и созданная нами env
.
3. Нажмите Create
и заполните поля, как показано на картинке ниже.
Name: new-env
Packages: Python 3.7
4. Перейдите в new-env
, выберете All
и установите нужный пакет. В нашем случае — numpy
.
5. Поменяйте текущее виртуальное окружение, например, на env
.
Мы разобрали два способа создания виртуального окружения: через компактный pipenv и с помощью среды Anaconda. Научились создавать, активировать и деактивировать виртуальные окружения и ставить в них пакеты. Теперь есть где писать чистый код!
Комментарии