Python

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

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

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

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

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

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

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

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

В виртуальной среде в 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. Можете приступать к работе над проектом внутри среды. Устанавливайте библиотеки, которыми привыкли пользоваться в обычном терминале. Такие библиотеки будут присутствовать только в виртуальной. Выйти из виртуальной среды можно через команду «выхода» :

deactivate

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