Найти тему
Nuances of programming

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

Оглавление

Источник: Nuances of Programming

Введение в виртуальные среды Python с использованием VR

Нет, вам не нужны очки виртуальной реальности (VR) для чтения этой статьи. Будет достаточно внимательности и интереса к теме.

Если вы новичок в мире науки о данных и Python, то виртуальные среды могут показаться чем-то очень сложным. Но на деле все совсем не так. Виртуальные среды просты для освоения и еще проще в работе! Если вам уже доводилось иметь дело с виртуальной реальностью (например, вы играли в игры с виртуальной реальностью или пользовались VR-очками), то у вас будет явное преимущество. В данной статье будет подробно рассказано обо всем, начиная с понятия о виртуальной среде и заканчивая ее установкой и использованием!

Что такое среда?

В человеческом понимании среда ассоциируется с неким окружением, то есть местом, в котором «обитают» люди. Понятие среды в языке программирования (например, Python) довольно похоже. Для Python средой является ваш компьютер. Довольно часто он называется «локальной» средой, поскольку языки могут выполняться и на серверах (компьютеры, которые запускаются в центре обработки данных и доступны через интернет).

Что такое виртуальная среда?

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

-2

Для человека на фотографии выше, окружающей средой становится то, что он видит через очки. Его восприятие окружающей среды меняется на то, что он видит в очках.

В виртуальной среде в Python та же идея: вы предоставляете языку отдельную «среду» внутри вашего компьютера, в которой он будет работать.

Тем не менее между VR-опытом человека и Python есть ряд ключевых различий. Во-первых, вы можете создать несколько виртуальных сред для Python (то есть Python, в отличие от одноликого человека, содержит бесконечное количество лиц, на которые можно надеть сколько угодно VR-очков). Во-вторых, несмотря на то, что человек может ощущать и прикасаться к объектам из «реальной» среды, для Python это вовсе не обязательно. Как только вы надеваете на Python VR-очки, он может (или не может) получать доступ к «реальной» среде (в зависимости от настроек). Таким образом, все библиотеки и пакеты, установленные на компьютере (т.е. в «реальной» среде) не будут доступны в виртуальной среде и наоборот.

Зачем мне это нужно?

Да, звучит круто, но зачем вообще нужна виртуальная среда? Зачем надевать навороченные VR-очки скучным и сложным языкам программирования?

Удобство. Стабильность. Душевный покой. Для вас самих, а не для языка программирования. Вы когда-нибудь замечали, что для разных проектов требуются разные версии библиотек и даже языков программирования? Вот здесь и пригодятся виртуальные среды. Суть в том, что для каждого проекта вы создаете отдельную виртуальную среду.

А поскольку языковые ресурсы (библиотеки, пакеты и др.) скрыты от «реальной» и прочих виртуальных сред, то не возникает никаких конфликтов и помех. Например, вы обновили библиотеку Х в виртуальной среде проекта А. Поскольку вы сделали это внутри виртуальной среды проекта А, то можете быть уверенны, что это не повлечет за собой обновление библиотеки Х в других средах. Таким образом, ваш код и его зависимости в прочих местах останутся неизменными.

Ясно. И как же создать виртуальную среду?

Для этой статьи я воспользуюсь библиотекой virtualenv. Но существует масса других (возможно, более удобных) альтернатив для создания виртуальной среды в Python. Работать буду на Mac — эта система основана на UNIX. Если у вас на компьютере стоит другая система, то этапы могут отличаться.

Возможно, в вашей системе не установлена virtualenv. Проверить это можно через команду:

virtualenv --version

Если библиотека установлена, терминал выведет ее версию (например, 16.4.3). В противном случае, если вы увидите ошибку «command not found» («команда не найдена»), то введите следующую команду:

pip install virtualenv

PS: Если вдруг у вас отсутствует pip, то скачайте его. Обычно он автоматически включен в бинарные установщики для Python 3.4 и выше.

Следующий шаг — перейдите в директорию, в которой хотите создать виртуальную среду. Можете создать отдельную директорию специально для сред и перейти в нее с помощью этой команды:

mkdir Environments && cd Environments

Так вы создадите новую папку под названием Environments, а затем сразу же в нее перейдете. Для создания среды введите следующую команду:

virtualenv project_name

Эта команда создает среду project_name внутри текущей рабочей директории. Замените project_name на название своего проекта. По завершении этих шагов окно терминала покажет вам что-то подобное:

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

Пока что наша виртуальная среда не активирована. Каждый раз, когда вы хотите попасть внутрь среды или активировать ее (т.е. «надеть VR-очки»), нужно выполнять следующую команду:

source project_name/bin/activate

Тадам! Сейчас вы оказались внутри виртуальной среды! Как же в этом убедиться? Теперь терминал добавляет во все строки префикс project_name:

Окно терминала после активации виртуальной среды Python
Окно терминала после активации виртуальной среды Python

Вот и все! Вы успешно обучились, создали и активировали виртуальную среду для Python. Можете приступать к работе над проектом внутри среды. Устанавливайте библиотеки, которыми привыкли пользоваться в обычном терминале. Такие библиотеки будут присутствовать только в виртуальной. Выйти из виртуальной среды можно через команду «выхода» :

deactivate

Читайте нас в телеграмме и vk

Перевод статьи Raivat Shah: Understanding Python Virtual Environments