Время прочтения: 4 мин.

Чтобы было проще понимать, скажу, что виртуальное окружение — это “коробка”, в которую мы складываем все необходимые для проекта инструменты, например, python библиотеки. Если мы хотим, чтобы кто-то смог повторить или продолжить нашу работу, мы просто отдаем нашу “коробку” со всеми необходимыми настройками. Хочу заметить, некоторые инструменты мы можем использовать один раз, что делает нецелесообразным его хранение в локальном интерпретаторе python и мы его храним отдельно в виртуальном окружении, не засоряя локальный интерпретатор.

Давайте начнем настройку. Чтобы создать виртуальное окружение необходимо в терминале использовать следующую команду: python –m venv my_env

“my_env” это название виртуального окружения, можно назвать его, как угодно.

После выполнения команды можно заметить, что в директории создалась папка “my_env”, это и есть наше виртуальное окружение

Далее для работы с виртуальным окружением исполняем команду: my_env\Scripts\activate

Слева от пути появилось название нашего окружения, что говорит нам о том, что виртуальное окружение активировано. Запустив команду pip list, видим, что в нашем окружении сейчас стоит две библиотеки pip (пакетный менеджер python) и setuptools (библиотека для создания пакетов).

Добавить дополнительные модули можно командой pip install *название пакета*. Установим в наше окружение библиотеки numpy, pandas, scipy.(Вы можете добавить нужные библиотеки через пробел, либо отдельно для каждой вызвать команду pip install)

Проверим наличие установленных библиотек уже известной командой pip list

Таким образом, при наличии разных версий библиотек в локальном интерпретаторе и виртуальном окружении, будет импортирована версия из виртуального окружения (при условии активации на момент импорта).

Создадим файл зависимостей от внешних библиотек, чтобы члены команды могли пользоваться инструментами из проекта. Это можно сделать вручную, а можно автоматически командой из pip – pip freeze>> requirements.txt.

Если посмотреть содержимое файла requirements, то увидим, связку – название библиотеки и версия, необходимая для работы скрипта. Наш коллега создает и активирует виртуальное окружение (как это делать написано в начале статьи), и командой pip install –r “requirements.txt” устанавливает все библиотеки из файла, (в кавычках указываем путь до файла requirements).

Для работы с jupyter notebook устанавливаем в наше виртуальное окружение pip модуль notebook командой pip install notebook, вместе с ним устанавливается модуль настройки kernel (ядра) — ipykernel. Для создания kernel используем команду python -m ipykernel install —name=env_kernel (env_kernel это название нашего нового ядра).

Запускаем jupyter notebook командой jupyter notebook, теперь создавая новый ноутбук в окне new (новый) мы видим все доступные kernels.

Если новое ядро не создавать (использовать ядро по умолчанию), библиотеки в jupyter notebook будут ставиться из корневого интерпретатора.

Давайте посмотрим как это работает: на локальном интерпретаторе стоит библиотека SVA_PM, а на виртуальном окружении ее нет (при импорте библиотеки SVA_PM на виртуальном окружении должна быть ошибка, т.к. ее нет). Проверим работу каждого ядра с данной библиотекой.

Пример с ядром, которое установлено по умолчанию.

Пример с ядром, которое мы создали для виртуального окружения.

В случае если нужно удалить kernel можно воспользоваться командой jupyter kernelspec remove *название kernel.

Для того, чтобы деактивировать наше виртуальное окружение используем команду deactivate.

Скидывая файл скрипта и файл зависимостей, у коллеги не должно возникнуть проблем с запуском.

Данный инструмент языка python, позволяет специалистам IT-профиля, вести свои проекты, не засоряя память громоздкими модулями, и проблемами разных версий библиотек.