Python venv и Jupyter ipykernel для самых зелёных

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

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

Python venv и Jupyter ipykernel для самых зелёных

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

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

Python venv и Jupyter ipykernel для самых зелёных

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

Python venv и Jupyter ipykernel для самых зелёных

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

Python venv и Jupyter ipykernel для самых зелёных

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

Python venv и Jupyter ipykernel для самых зелёных

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

Python venv и Jupyter ipykernel для самых зелёных

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

Python venv и Jupyter ipykernel для самых зелёных

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

Python venv и Jupyter ipykernel для самых зелёных

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

Python venv и Jupyter ipykernel для самых зелёных

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

Python venv и Jupyter ipykernel для самых зелёных

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

Python venv и Jupyter ipykernel для самых зелёных

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

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

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

Python venv и Jupyter ipykernel для самых зелёных

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

Python venv и Jupyter ipykernel для самых зелёных

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

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

Python venv и Jupyter ipykernel для самых зелёных

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

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

1414 показов
13K13K открытий
2 комментария

В целом неплохо а для Unix систем есть такая статья?

Ответить
Автор

Возможно вам помогут следующие статьи:
- для Ubuntu 18.04: https://netpoint-dc.com/blog/python-venv-ubuntu-1804/
- для Ubuntu 20.04: https://setiwik.ru/kak-sozdat-virtualnuju-sredu-python-3-na-ubuntu-20-04/
- для настройки в PyCharm: https://habr.com/ru/post/491916/

Ответить