Что такое виртуальная среда в питон
Виртуальное окружение Python (venv)
Location — путь до ваших глобальных пакетов.
В большинстве случаев, устанавливать пакеты глобально — плохая идея 🙅♂️ Почему? Рассмотрим простой пример:
Решение данной проблемы — создание виртуального окружения (virtual environment).
Основная цель виртуального окружения Python — создание изолированной среды для python-проектов
Это означает, что каждый проект может иметь свои собственные зависимости, независимо от других проектов.
Настройка виртуального окружения
Устанавливать venv не нужно — он входит в стандартную библиотеку Python
Создание
Для создания виртуального окружения, перейдите в директорию своего проекта и выполните:
В результате будет создан каталог venv/ содержащий копию интерпретатора Python, стандартную библиотеку и другие вспомогательные файлы.
Новые пакеты будут устанавливаться в venv/lib/python3.x/site-packages/
Активация
Чтобы начать пользоваться виртуальным окружением, необходимо его активировать:
source выполняет bash-скрипт без запуска дополнительного bash-процесса.
Проверить успешность активации можно по приглашению оболочки. Она будет выглядеть так:
Также новый путь до библиотек можно увидеть выполнив команду:
Интересный факт: в виртуальном окружении вместо команды python3 и pip3, можно использовать python и pip
Автоматическая активация
В некоторых случаях, процесс активации виртуального окружения может показаться неудобным (про него можно банально забыть 🤷♀️).
На практике, для автоматической активации перед запуском скрипта, создают скрипт-обертку на bash :
Теперь можно установить права на исполнение и запустить нашу обертку:
Деактивация
Закончив работу в виртуальной среде, вы можете отключить ее, выполнив консольную команду:
Альтернативы venv
На данный момент существует несколько альтернатив для venv:
Стоит ли использовать виртуальное окружение в своей работе — однозначно да. Это мощный и удобный инструмент изоляции проектов друг от друга и от системы. С помощью виртуального окружения можно использовать даже разные версии Python!
Виртуальное окружение в Python
В этой статье мы рассмотрим как используется и для чего нужно виртуальное окружение в Python.
Введение
Виртуальное окружение это изолированная пространство для приложений в Python, которое дает возможность иметь свой набор зависимостей не мешая другим проектам.
Так же оно позволяет задействовать различные версии интерпретатора в нескольких проектах.
Создание окружения в Python выполняется с помощью встроенного модуля venv. Venv — это модуль из стандартной библиотеки не требующий никакой дополнительной установки.
Виртуальное окружение создается под конкретные проекты, для его создания потребуется знать путь до корневого каталога.
Создание директории для проекта
Необходимо выполнить команду в терминале
mkdir test_project создает папку с именем test_project, а cd test_project перемещается в эту директорию.
Это то же самое, что создать пустую папку и открыть ее.
В директории test_project будут храниться все файлы проекта и это будет местом для виртуального окружения.
Создание виртуального окружения
Чтобы создать виртуальную среду, нужно вызвать модуль venv из интерпретатора и указать директорию для служебных файлов.
После выполнения будет готово окружение с версией Python по умолчанию.
.venv — имя окружения. Можно называть как угодно. По совместительству является директорией в которой хранится вся информация окружения.
Если в операционной системе есть несколько версий Python и требование использовать какую – то конкретно, создайте виртуальную среду следующим образом
Активация виртуальной среды
Просто создать виртуальное окружение недостаточно, так же его необходимо активировать
Активация виртуальной среды в Windows
Открываем командную оболочку или powershell, переходим в директорию проекта и выполняем команду
Активация виртуальной среды в macOS и Linux
Достаточно открыть терминал в директории проекта и выполнить команду
Активация виртуальной среды изменит приглашение оболочки, чтобы показать, какую виртуальную среду вы сейчас используете.
Вот и все. Затем вы можете установить, обновить и удалить пакеты с помощью pip. Установленные пакеты будут изолированы только для данного проекта.
Заключение
Сегодня мы рассмотрели как используется и для чего необходимо виртуальное окружение в Python. Если у вас есть дополнительные вопросы, не стесняйтесь задавать их в комментариях.
Python. Урок 17. Виртуальные окружения
Что такое виртуальное окружение и зачем оно нужно?
Во-первых : различные приложения могут использовать одну и туже библиотеку, но при этом требуемые версии могут отличаться.
Во-вторых : может возникнуть необходимость в том, чтобы запретить вносить изменения в приложение на уровне библиотек, т.е. вы установили приложение и хотите, чтобы оно работало независимо от того обновляются у вас библиотеки или нет. Как вы понимаете, если оно будет использовать библиотеки из глобального хранилища ( /usr/lib/pythonXX/site-packages ), то, со временем, могут возникнуть проблемы.
Для решения данных вопросов используется подход, основанный на построении виртуальных окружений – своего рода песочниц, в рамках которых запускается приложение со своими библиотеками, обновление и изменение которых не затронет другие приложение, использующие те же библиотеки.
ПО позволяющее создавать виртуальное окружение в Python
Программное обеспечение, которое позволяет создавать виртуальные окружения в Python можно разделить на те, что входят в стандартную библиотеку Python и не входят в нее. Сделаем краткий обзор доступных инструментов (хороший пост на эту тем есть на stackoverflow ).
Virtualenvwrapper – это обертка для virtualenv позволяющая хранить все изолированные окружения в одном месте, создавать их, копировать и удалять. Предоставляет удобный способ переключения между окружениями и возможность расширять функционал за счет plug-in ’ов.
virtualenv
Установка virtualenv
Virtualenv можно установить с использованием менеджера pip (ссылка на статью), либо скачать исходные коды проекта и установить приложение вручную.
Установка с использованием pip.
Для установки virtualenv откройте консоль и введите следующую команду:
Установка из исходного кода проекта.
В этом случае, вам нужно будет выполнить чуть большее количество действий.
Введите в консоли следующий набор команд:
X.X – это версия приложения, ее вам нужно знать заранее.
Создание виртуального окружения
Виртуальное окружение создается следующей командой:
PRG1 в данном случае – это имя окружения.
Активация виртуального окружения
Для активации виртуального окружения воспользуйтесь командой (для Linux ):
для Windows команда будет выглядеть так:
Команда source выполняет bash- скрипт без запуска второго bash- процесса.
Если команда выполнилась успешно, то вы увидите, что перед приглашением в командной строке появилась дополнительная надпись, совпадающая с именем виртуального окружения.
Если вы создадите виртуальное окружение с ключем –system-site-packages :
то в рамках окружения PRG1 вы будите иметь доступ к глобальному хранилищу пакетов:
Деактивация виртуального окружения
venv
Создание виртуального окружения
Для создания виртуального окружения с именем PRG2 с помощью venv выполните следующую команду:
Активация виртуального окружения
Активация виртуального окружения в Linux выполняется командой:
Деактивация виртуального окружения
Деактивация выполняется командой deactivate (работает как в Windows, так и в Linux )
Полезные ссылки
P.S.
Если вам интересна тема анализа данных, то мы рекомендуем ознакомиться с библиотекой Pandas. На нашем сайте вы можете найти вводные уроки по этой теме. Все уроки по библиотеке Pandas собраны в книге “Pandas. Работа с данными”.
Понятие о виртуальных средах в Python
Введение в виртуальные среды Python с использованием VR
Нет, вам не нужны очки виртуальной реальности (VR) для чтения этой статьи. Будет достаточно внимательности и интереса к теме.
Если вы новичок в мире науки о данных и Python, то виртуальные среды могут показаться чем-то очень сложным. Но на деле все совсем не так. Виртуальные среды просты для освоения и еще проще в работе! Если вам уже доводилось иметь дело с виртуальной реальностью (например, вы играли в игры с виртуальной реальностью или пользовались VR-очками), то у вас будет явное преимущество. В данной статье будет подробно рассказано обо всем, начиная с понятия о виртуальной среде и заканчивая ее установкой и использованием!
Что такое среда?
В человеческом понимании среда ассоциируется с неким окружением, то есть местом, в котором «обитают» люди. Понятие среды в языке программирования (например, Python) довольно похоже. Для Python средой является ваш компьютер. Довольно часто он называется «локальной» средой, поскольку языки могут выполняться и на серверах (компьютеры, которые запускаются в центре обработки данных и доступны через интернет).
Что такое виртуальная среда?
Вы когда-нибудь были в виртуальной реальности или видели, как в ней находился другой человек? Если нет, то вот пример:
Для человека на фотографии выше, окружающей средой становится то, что он видит через очки. Его восприятие окружающей среды меняется на то, что он видит в очках.
В виртуальной среде в Python та же идея: вы предоставляете языку отдельную «среду» внутри вашего компьютера, в которой он будет работать.
Тем не менее между VR-опытом человека и Python есть ряд ключевых различий. Во-первых, вы можете создать несколько виртуальных сред для Python (то есть Python, в отличие от одноликого человека, содержит бесконечное количество лиц, на которые можно надеть сколько угодно VR-очков). Во-вторых, несмотря на то, что человек может ощущать и прикасаться к объектам из «реальной» среды, для Python это вовсе не обязательно. Как только вы надеваете на Python VR-очки, он может (или не может) получать доступ к «реальной» среде (в зависимости от настроек). Таким образом, все библиотеки и пакеты, установленные на компьютере (т.е. в «реальной» среде) не будут доступны в виртуальной среде и наоборот.
Зачем мне это нужно?
Да, звучит круто, но зачем вообще нужна виртуальная среда? Зачем надевать навороченные VR-очки скучным и сложным языкам программирования?
Удобство. Стабильность. Душевный покой. Для вас самих, а не для языка программирования. Вы когда-нибудь замечали, что для разных проектов требуются разные версии библиотек и даже языков программирования? Вот здесь и пригодятся виртуальные среды. Суть в том, что для каждого проекта вы создаете отдельную виртуальную среду.
А поскольку языковые ресурсы (библиотеки, пакеты и др.) скрыты от «реальной» и прочих виртуальных сред, то не возникает никаких конфликтов и помех. Например, вы обновили библиотеку Х в виртуальной среде проекта А. Поскольку вы сделали это внутри виртуальной среды проекта А, то можете быть уверенны, что это не повлечет за собой обновление библиотеки Х в других средах. Таким образом, ваш код и его зависимости в прочих местах останутся неизменными.
Ясно. И как же создать виртуальную среду?
Для этой статьи я воспользуюсь библиотекой virtualenv. Но существует масса других (возможно, более удобных) альтернатив для создания виртуальной среды в Python. Работать буду на Mac — эта система основана на UNIX. Если у вас на компьютере стоит другая система, то этапы могут отличаться.
Возможно, в вашей системе не установлена virtualenv. Проверить это можно через команду:
Если библиотека установлена, терминал выведет ее версию (например, 16.4.3). В противном случае, если вы увидите ошибку «command not found» («команда не найдена»), то введите следующую команду:
PS: Если вдруг у вас отсутствует pip, то скачайте его. Обычно он автоматически включен в бинарные установщики для Python 3.4 и выше.
Следующий шаг — перейдите в директорию, в которой хотите создать виртуальную среду. Можете создать отдельную директорию специально для сред и перейти в нее с помощью этой команды:
Так вы создадите новую папку под названием Environments, а затем сразу же в нее перейдете. Для создания среды введите следующую команду:
Эта команда создает среду project_name внутри текущей рабочей директории. Замените project_name на название своего проекта. По завершении этих шагов окно терминала покажет вам что-то подобное:
Пока что наша виртуальная среда не активирована. Каждый раз, когда вы хотите попасть внутрь среды или активировать ее (т.е. «надеть VR-очки»), нужно выполнять следующую команду:
Тадам! Сейчас вы оказались внутри виртуальной среды! Как же в этом убедиться? Теперь терминал добавляет во все строки префикс project_name:
Вот и все! Вы успешно обучились, создали и активировали виртуальную среду для Python. Можете приступать к работе над проектом внутри среды. Устанавливайте библиотеки, которыми привыкли пользоваться в обычном терминале. Такие библиотеки будут присутствовать только в виртуальной. Выйти из виртуальной среды можно через команду «выхода» :
Создание виртуальных окружений и установка библиотек для Python 3 в IDE PyCharm
Язык программирования Python считается достаточно простым. На нем легче и быстрее пишутся программы, по сравнению с компилируемыми языками программирования. Для Python существует множество библиотек, позволяющих решать практически любые задачи. Есть, конечно, и минусы и другие нюансы, но это отдельная тема.
Довольно часто я вижу, как мои знакомые и друзья начинают изучать Python и сталкиваются с проблемой установки и использования сторонних библиотек. Они могут несколько часов потратить на установку библиотеки, и даже, могут не справиться с этим и забить на неё. В то время как, в большинстве случаев, это можно было сделать за несколько минут.
Статья начинается с базовых вещей: с установки Python 3, инструментов разработки Pip и Virtualenv и среды разработки PyCharm в Windows и в Ubuntu. Для многих это не представляет трудностей и возможно, что уже всё установлено.
После чего будет то, ради чего задумывалась статья, я покажу как в PyCharm создавать и использовать виртуальные окружения и устанавливать в них библиотеки с помощью Pip.
Установка Python и Pip
Pip является менеджером пакетов для Python. Именно с помощью него обычно устанавливаются модули/библиотеки для разработки в виде пакетов. В Windows Pip можно установить через стандартный установщик Python. В Ubuntu Pip ставится отдельно.
Установка Python и Pip в Windows
Для windows заходим на официальную страницу загрузки, где затем переходим на страницу загрузки определенной версии Python. У меня используется Python 3.6.8, из-за того, что LLVM 9 требует установленного Python 3.6.
Во время установки ставим галочку возле Add Python 3.x to PATH и нажимаем Install Now:
Установка Python и Pip в Ubuntu
В Ubuntu установить Python 3 можно через терминал. Запускаем его и вводим команду установки. Вторая команда выводит версию Python.
Далее устанавливаем Pip и обновляем его. После обновления необходимо перезапустить текущую сессию (или перезагрузить компьютер), иначе возникнет ошибка во время вызова Pip.
Основные команды Pip
Рассмотрим основные команды при работе с Pip в командой строке Windows и в терминале Ubuntu.
Установка VirtualEnv и VirtualEnvWrapper
VirtualEnv используется для создания виртуальных окружений для Python программ. Это необходимо для избежания конфликтов, позволяя установить одну версию библиотеки для одной программы, и другу для второй. Всё удобство использования VirtualEnv постигается на практике.
Установка VirtualEnv и VirtualEnvWrapper в Windows
В командной строке выполняем команды:
Установка VirtualEnv и VirtualEnvWrapper в Ubuntu
Для Ubuntu команда установки будет следующей:
После которой в конец
Работа с виртуальным окружением VirtualEnv
Рассмотрим основные команды при работе с VirtualEnv в командой строке Windows и в терминале Ubuntu.
Команда | Описание |
---|---|
mkvirtualenv env-name | Создаем новое окружение |
workon | Смотрим список окружений |
workon env-name | Меняем окружение |
deactivate | Выходим из окружения |
rmvirtualenv env-name | Удаляем окружение |
Установка PyCharm
PyCharm — интегрированная среда разработки для языка программирования Python. Обладает всеми базовыми вещами необходимых для разработки. В нашем случае огромное значение имеет хорошее взаимодействие PyCharm с VirtualEnv и Pip, чем мы и будем пользоваться.
Установка PyCharm в Windows
Скачиваем установщик PyCharm Community для Windows с официального сайта JetBrains. Если умеете проверять контрольные суммы у скаченных файлов, то не забываем это сделать.
В самой установке ничего особенного нету. По сути только нажимаем на кнопки next, и в завершение на кнопку Install. Единственно, можно убрать версию из имени папки установки, т.к. PyCharm постоянно обновляется и указанная версия в будущем станет не правильной.
Установка PyCharm в Ubuntu
Скачиваем установщик PyCharm Community для Linux с официального сайта JetBrains. Очень хорошей практикой является проверка контрольных сумм, так что если умеете, не ленитесь с проверкой.
Теперь в директории
Далее выполняем команды в терминале:
Производим установку. И очень важно в конце не забыть создать desktop файл для запуска PyCharm. Для этого в Окне приветствия в нижнем правом углу нажимаем на Configure → Create Desktop Entry.
Установка PyCharm в Ubuntu из snap-пакета
PyCharm теперь можно устанавливать из snap-пакета. Если вы используете Ubuntu 16.04 или более позднюю версию, можете установить PyCharm из командной строки.
Использование VirtualEnv и Pip в PyCharm
Поддержка Pip и Virtualenv в PyCharm появилась уже довольно давно. Иногда конечно возникают проблемы, но взаимодействие работает в основном стабильно.
Рассмотрим два варианта работы с виртуальными окружениями:
Первый пример: использование собственного виртуального окружения для проекта
Создадим программу, генерирующую изображение с тремя графиками нормального распределения Гаусса Для этого будут использоваться библиотеки matplotlib и numpy, которые будут установлены в специальное созданное виртуальное окружение для программы.
Запускаем PyCharm и окне приветствия выбираем Create New Project.
В мастере создания проекта, указываем в поле Location путь расположения создаваемого проекта. Имя конечной директории также является именем проекта. В примере директория называется ‘first_program’.
Теперь установим библиотеки, которые будем использовать в программе. С помощью главного меню переходим в настройки File → Settings. Где переходим в Project: project_name → Project Interpreter.
Здесь мы видим таблицу со списком установленных пакетов. В начале установлено только два пакета: pip и setuptools.
Справа от таблицы имеется панель управления с четырьмя кнопками:
Для добавления (установки) библиотеки в окружение нажимаем на плюс. В поле поиска вводим название библиотеки. В данном примере будем устанавливать matplotlib. Дополнительно, через Specify version можно указать версию устанавливаемого пакета и через Options указать параметры. Сейчас для matplotlib нет необходимости в дополнительных параметрах. Для установки нажимаем Install Package.
После установки закрываем окно добавления пакетов в проект и видим, что в окружение проекта добавился пакет matplotlib с его зависимостями. В том, числе был установлен пакет с библиотекой numpy. Выходим из настроек.
Теперь мы можем создать файл с кодом в проекте, например, first.py. Код программы имеет следующий вид:
Далее указываем в поле Name имя конфигурации и в поле Script path расположение Python файла с кодом программы. Остальные параметры не трогаем. В завершение нажимаем на Apply, затем на OK.
Теперь можно выполнить программу и в директории с программой появится файл gauss.png :
Второй пример: использование предварительно созданного виртуального окружения
Данный пример можно использовать во время изучения работы с библиотекой. Например, изучаем PySide2 и нам придется создать множество проектов. Создание для каждого проекта отдельного окружения довольно накладно. Это нужно каждый раз скачивать пакеты, также свободное место на локальных дисках ограничено.
Более практично заранее подготовить окружение с установленными нужными библиотеками. И во время создания проектов использовать это окружение.
В этом примере мы создадим виртуальное окружения PySide2, куда установим данную библиотеку. Затем создадим программу, использующую библиотеку PySide2 из предварительно созданного виртуального окружения. Программа будет показывать метку, отображающую версию установленной библиотеки PySide2.
Далее в созданном окружении устанавливаем пакет с библиотекой PySide2, также как мы устанавливали matplotlib. И выходим из настроек.
Теперь мы можем создавать новый проект использующий библиотеку PySide2. В окне приветствия выбираем Create New Project.
Для проверки работы библиотеки создаем файл second.py со следующий кодом:
Далее создаем конфигурацию запуска программы, также как создавали для первого примера. После чего можно выполнить программу.
Заключение
У меня нет богатого опыта программирования на Python. И я не знаком с другими IDE для Python. Поэтому, возможно, данные IDE также умеют работать с Pip и Virtualenv. Использовать Pip и Virtualenv можно в командой строке или в терминале. Установка библиотеки через Pip может завершиться ошибкой. Есть способы установки библиотек без Pip. Также создавать виртуальные окружения можно не только с помощью Virtualenv.
В общем, я лишь поделился небольшой частью опыта из данной области. Но, если не вдаваться в глубокие дебри, то этого вполне достаточно знать, чтобы писать простые программы на Python с использованием сторонних библиотек.