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