В этой статье будут показаны установка, настройка, а также проведен полный обзор всех возможностей использования утилит venv и virtualenv для Python. Но начнем мы с рассмотрения общих вопросов.
В процессе разработки приложений на языке программирования Python может возникнуть ряд проблем, которые связаны с применением различных версий библиотек. Например, для работы двух различных приложений может потребоваться одна и та же библиотека, но разных версий. Или же нужно обеспечить корректную работу приложения вне зависимости от обновления версии библиотеки, которую оно использует.
Чтобы решать подобные проблемы, разработчики придумали интересный способ: запускать каждое приложение со своим набором версий библиотек в изолированных средах. Таким образом, виртуальная среда (virtual environment) в языке Python позволяет управлять проектами изолированно друг от друга, то есть:
- у каждого проекта могут быть свои зависимости;
- зависимости одного проекта не влияют на зависимости другого проекта.
Создавать виртуальное окружение в Python можно при помощи различных утилит. И сегодня мы поговорим про venv и virtualenv.
Важно: перед началом работы у Вас должен быть установлен Python 3 и pip. Если Вы используете Windows, все следующие команды, кроме тех, где будет альтернативный вариант, выполняются таким же образом, но необходимо заменять pip3 на pip, а python3 на Python.
Содержание:
Работа с venv
Чтобы создать виртуальную среду, мы используем модуль venv. Это удобный инструмент для управления зависимостями и изоляции проектов, который выстроен в Python, начиная с версии Python 3.3+. Поэтому модуль venv нельзя использовать для изоляции программ Python 2.
Создание проекта
Приступим к созданию проекта. Первым делом следует создать папку проекта и перейти в нее, в Linux это можно сделать при помощи следующих команд:
Замените my_python_project
на желаемое название проекта.
Создание виртуальной среды
Теперь создадим в этой папке виртуальную среду:
Замените project_name_myproject
на желаемое название виртуальной среды.
Если у Вас возникает следующая ошибка:
То Вам необходимо установить venv. Например, в Ubuntu для этого требуется выполнить следующую команду:
После повторите команду создания виртуальной среды Python, показанную в начале этого раздела.
Активация виртуальной среды
Осталось активировать виртуальную среду при помощи команды:
Замените project_name_myproject
на название виртуальной среды, созданной на прошлом шаге.
Если Вы используете 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 с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.