Что такое venv и virtualenv в Python, и как их использовать

Что такое venv и virtualenv в Python, и как их использовать

Рубрики:

Python

Метки:

,

В этой статье будут показаны установка, настройка, а также проведен полный обзор всех возможностей использования утилит venv и virtualenv для Python. Но начнем мы с рассмотрения общих вопросов.

В процессе разработки приложений на языке программирования Python может возникнуть ряд проблем, которые связаны с применением различных версий библиотек. Например, для работы двух различных приложений может потребоваться одна и та же библиотека, но разных версий. Или же нужно обеспечить корректную работу приложения вне зависимости от обновления версии библиотеки, которую оно использует.

Чтобы решать подобные проблемы, разработчики придумали интересный способ: запускать каждое приложение со своим набором версий библиотек в изолированных средах. Таким образом, виртуальная среда (virtual environment) в языке Python позволяет управлять проектами изолированно друг от друга, то есть:

  • у каждого проекта могут быть свои зависимости;
  • зависимости одного проекта не влияют на зависимости другого проекта.

Создавать виртуальное окружение в Python можно при помощи различных утилит. И сегодня мы поговорим про venv и virtualenv.

Важно: перед началом работы у Вас должен быть установлен Python 3 и pip. Если Вы используете Windows, все следующие команды, кроме тех, где будет альтернативный вариант, выполняются таким же образом, но необходимо заменять pip3 на pip, а python3 на Python.

Содержание:

  1. Работа с venv
    1. Создание проекта
    2. Создание виртуальной среды
    3. Активация виртуальной среды
    4. Проверка установленных пакетов
    5. Выход из виртуальной среды
    6. Перенос установленных пакетов
    7. Импорт пакетов в другую среду
  2. Работа с virtualenv
    1. Установка virtualenv и создание виртуальной среды
  3. Работа с virtualenvwrapper
    1. Установка virtualenvwrapper
    2. Создание виртуальной среды
    3. Просмотр всех созданных виртуальных сред
    4. Переключение между виртуальными средами
    5. Выход из виртуальной среды
    6. Копирование виртуальной среды
    7. Удаление виртуальной среды
  4. Выводы

Работа с venv

Чтобы создать виртуальную среду, мы используем модуль venv. Это удобный инструмент для управления зависимостями и изоляции проектов, который выстроен в Python, начиная с версии Python 3.3+. Поэтому модуль venv нельзя использовать для изоляции программ Python 2.

Создание проекта

Приступим к созданию проекта. Первым делом следует создать папку проекта и перейти в нее, в Linux это можно сделать при помощи следующих команд:

 

Замените my_python_project на желаемое название проекта.

Создание виртуальной среды

Теперь создадим в этой папке виртуальную среду:

 

Замените project_name_myproject на желаемое название виртуальной среды.

Если у Вас возникает следующая ошибка:

 

То Вам необходимо установить venv. Например, в Ubuntu для этого требуется выполнить следующую команду:

 

После повторите команду создания виртуальной среды Python, показанную в начале этого раздела.

Активация виртуальной среды

Осталось активировать виртуальную среду при помощи команды:

 

Замените project_name_myproject на название виртуальной среды, созданной на прошлом шаге.

Что такое virtualenv в python и как его использовать

Если Вы используете Windows, и у Вас правильно установлен Python и pip, то Вы можете активировать виртуальную среду следующей командой:

 

Замените project_name_myproject на название виртуальной среды, созданной на прошлом шаге.

Проверка установленных пакетов

Теперь проверим установленные пакеты pip внутри виртуальной среды:

 

Вывод должен быть примерно такой:

 

Как мы видим, внутри виртуальной среды у нас нет никаких сторонних установленных библиотек pip. Можно установить какой-либо пакет, например, модуль requests:

 

Теперь снова проверим список установленных пакетов pip внутри виртуальной среды:

 

В выводе должен появиться наш только что установленный пакет:

Выход из виртуальной среды

Для выхода из виртуальной среды необходимо выполнить команду:

 

Если после выхода снова проверить список установленных пакетов, то мы получим совсем другой вывод:

Перенос установленных пакетов

Для переноса установленных пакетов в другую среду на Linux можно использовать простую команду:


Она создаст файл requirements.txt, в котором будет находится список всех установленных пакетов.

Импорт пакетов в другую среду

Теперь можно перейти в другую виртуальную среду и импортировать пакеты следующей командой:

Работа с virtualenv

Утилита virtualenv — это наиболее популярный инструмент, который используется для создания изолированных сред в Python. Он создает папку, содержащую все необходимые исполняемые файлы для использования пакетов, которые потребуются проекту Python. В отличие от модуля venv, эту утилиту можно использовать как в Python 3, так и в версии 2.7.

Установка virtualenv и создание виртуальной среды

Чтобы установить утилиту virtualenv, используйте pip:

 

Создание виртуальной среды virtualenv происходит так:

 

virtualenv myproject создаст папку в текущем каталоге. В ней будут находиться исполняемые файлы Python и копия библиотеки pip, которую Вы можете использовать для установки других пакетов. Имя виртуальной среды (в данном случае это было myproject) может быть любым. Если имя отсутствует, файлы будут помещены в текущий каталог. Таким образом создается копия Python в любом каталоге, в котором Вы запускали команду, помещая её в папку с именем myproject.

Вы также можете использовать интерпретатор Python по выбору. Пример использования python 2.7:

 

Для версии python 3.7:

 

Интерпретатор можно изменить глобально с помощью переменной env в ~/.bashrc:

 

Проверить версию Python и pip можно с помошью следующих команд:

Работа с virtualenvwrapper

Мы разобрались с базовыми функциями virtualenv. Теперь давайте разберемся, как делать более сложные операции, например, копирование виртуальных сред.

Самый простой способ управлять virtualenv — использовать virtualenvwrapper. Это утилита, при помощи которой можно хранить все изолированные проекты в одном месте, а также создавать, копировать их и удалять. Кроме того, virtualenvwrapper позволяет удобно переключаться между изолированными средами.

Установка virtualenvwrapper

Утилита virtualenvwrapper не поставляется вместе с virtualenv, поэтому для её установки на Linux необходимо выполнить следующие команды:

 

Если Вы используете Windows, и у Вас правильно установлен Python и pip, то Вы можете установить virtualenvwrapper следующей командой:

 

Если при установке у Вас будет желтое предупреждение о том, что расположение установленных скриптов не находится в системной переменной PATH, то Вам необходимо будет добавить расположение из этого сообщения в PATH.

Важно: выполняйте следующую команду только в cmd! 

 

Замените C:\Users\storm\AppData\Roaming\Python\Python39\Scripts на расположение, указанное в предупреждении.

Создание виртуальной среды

Начать использование virtualenvwrapper стоит с создания новой виртуальной среды. Сделать это можно следующим образом:

 

После создания виртуально среды, Вы автоматически окажетесь в ней:

Просмотр всех созданных виртуальных сред

Просмотреть все созданные виртуальные среды можно так:

 

Эта команда выведет список всех созданных через virtualenvwrapper виртуальных сред.

Переключение между виртуальными средами

Чтобы переключиться на другую виртуальную среду, нужно выполнить следующую команду:

 

Она переключит или включит выбранную Вами виртуальную среду.

Выход из виртуальной среды

Для выхода из виртуальной среды необходимо выполнить команду:

Копирование виртуальной среды

Чтобы копировать виртуальные среды, введите:

Удаление виртуальной среды

Удалять виртуальные среды можно при помощи команды:

 

Важно: не забудьте перед удалением выйти из виртуальной среды при помощи команды:

Выводы

Вы познакомились с основами работы с виртуальными средами в Python. И теперь знаете про особенности установки и использования утилит venv, virtualenv и virtualenvwrapper в Python.

Спасибо за время, уделенное прочтению статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Python

Метки:

,

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Поиск по сайту
Лучшее
Популярное
Рубрики
Меню