Jupyter Notebook. Часть 3

Все курсы > Программирование на Питоне > Занятие 14 (часть 3)

Поговорим про дистрибутив Anaconda более подробно.

Conda

Программа conda, как уже было сказано, объединяет в себе систему управления пакетами (как pip) и, кроме того, позволяет создавать окружения.

Идея виртуального окружения или виртуальной среды (virtual environment) заключается в том, что если в рамках вашего проекта вы, например, используете определенную версию библиотеки Numpy и установка более ранней или более поздней версии приведет к сбоям в работе вашего кода, хорошим решением была бы изоляция нужной версии Numpy, а также всех остальных используемых вами библиотек. Именно для этого и нужно виртуальное окружение.

Рассмотрим, как мы можем устанавливать пакеты и создавать окружения через Anaconda Prompt и через Anaconda Navigator.

Anaconda Prompt

Пакеты и окружения

Про пакеты. По аналогии с pip, установленные (в текущем окружении) пакеты можно посмотреть с помощью команды conda list.

Установить пакет можно с помощью команды conda install <package_name>. Обновить пакет можно через conda update <package_name>. Например, снова попробуем установить Numpy.

установка пакета через Anaconda Prompt

Про окружения. По умолчанию мы работаем в базовом окружении (base environment). Посмотреть, какие в целом установлены окружения можно с помощью команды conda info --envs.

перечень виртуальных сред в Anaconda Prompt

Как вы видите, пока у нас есть только одно окружение. Давайте создадим еще одно виртуальное окружение и назовем его, например, waterfall.

Введите команду conda create --name waterfall.

создание новой виртуальной среды в Anaconda Prompt

Введем две команды

  • conda activate waterfall для активации нового окружения; и
  • conda list для того, чтобы посмотреть установленные в нем пакеты.
пакеты, установленные в новой виртуальной среде

Как вы видите, в новом окружении нет ни одного пакета. Введем conda search seaborn, чтобы посмотреть какие версии этого пакета доступны для скачивания.

доступные для скачивания из репозитория Anaconda версии пакета seaborn

Скачаем этот пакет через conda install seaborn. Проверим установку с помощью conda list.

установка пакета seaborn через Anaconda Prompt

Как вы видите, помимо seaborn было установлено множество других необходимых для работы пакета библиотек. Вернуться в базовое окружение можно с помощью команд conda activate base или conda deactivate.

Импорт модулей и переменная path

На прошлом занятии мы научились импортировать собственный модуль в командной строке Windows (cmd).

Посмотрим, отличается ли содержимое списка path для двух установленных версий Питона. Для этого в командной строке Windows и в Anaconda Prompt перейдем в интерактивный режим с помощью python. Затем введем

содержимое переменной path в двух дистрибутивах Питона (python.org и Anaconda)

Как мы видим, пути в переменной path будут отличаться и это нужно учитывать, если мы хотим локально запускать собственные модули.

Anaconda Navigator

Запускать программы, управлять окружениями и устанавливать необходимые библиотеки можно также через Anaconda Nagivator. На вкладке Home вы видите программы, которые можно открыть (launch) или установить (install) для текущего окружения.

Anaconda Navigator: вкладка Home

На вкладке Environments отображаются созданные нами окружения (в частности, окружение waterfall, которое мы создали ранее) и содержащиеся в них пакеты.

Anaconda Navigator: вкладка Environments

В целом интерфейс интуитивно понятен, и так как мы уже познакомились с принципом создания окружений и установки в них дополнительных пакетов, уверен, работа с Anaconda Navigator сложностей не вызовет.

Прежде чем завершить, обратимся к еще одной программе для интерактивного программирования JupyterLab.

JupyterLab

JupyterLab — расширенная версия Jupyter Notebook, которая также входит в дистрибутив Anaconda. Запустить эту программу можно через Anaconda Navigator или введя команду jupyter lab в Anaconda Prompt.

После запуска вы увидите вкладку Launcher, в которой можно создать новый ноутбук (Notebook) на Питоне или R, открыть консоль (Console) на этих языках, а также создать файлы в различных форматах (Other). Слева вы видите список папок компьютера.

JupyterLab: вкладка Launcher

В разделе Console нажмем на Python 3 (ipykernel). Введем несложный код (см. ниже) и исполним его, нажимая Shift + Enter.

консоль на Python в JupyterLab

Как вы видите, здесь мы можем писать код на Питоне так же, как мы это делали в командной строке Windows на прошлом занятии. Закроем консоль.

В файловой системе слева мы можем открывать уже созданные ноутбуки. Например, откроем ноутбук на R rprogramming.ipynb.

ноутбук на R в JupyterLab

В левом меню вертикальном меню, нажав на вторую сверху иконку, мы увидим открытые горизонтальные вкладки (open tabs: Launcher и rprogramming.ipynb), а также запущенные ядра (kernels).

открытые ноутбуки и запущенные ядра в JupyterLab

Консольные ядра (Console 1 и Console 2) можно открыть (по сути, мы снова запустим консоль).

консоль на R в JupyterLab

Две оставшиеся вертикальные вкладки открывают доступ к автоматическому оглавлению (content) и расширениям (extensions).

автоматическое оглавление в JupyterLab
расширения в JupyterLab

Вкладки Run и Kernel в верхнем меню JupyterLab в целом аналогичны вкладкам Cell и Kernel в JupyterNotebook.

Подведем итог

На сегодняшнем занятии мы познакомились с программой Jupyter Notebook, а также изучили дистрибутив Anaconda, в состав которого входит эта программа.

Говоря о программе Jupyter Notebook, мы узнали про возможности работы с ячейками и ядром программы. Кроме того, мы познакомились с языком разметки Markdown и написанием формул с помощью языка верстки LaTeX.

После этого мы установили ядро для программирования на R и рассмотрели основы этого языка.

При изучении дистрибутива Anaconda мы позникомились с системой conda и попрактиковались в установке библиотек и создании окружений через Anaconda Prompt и Anaconda Navigator.

Наконец мы узнали про особенности программы JupyterLab.

Вопросы для закрепления

Вопрос. Что такое Anaconda?

Посмотреть правильный ответ

Вопрос. Какой тип ячеек доступен в Jupyter Notebook?

Посмотреть правильный ответ

Вопрос. Для чего нужно виртуальное окружение?

Посмотреть правильный ответ


Ответы на вопросы

Вопрос. Можно ли исполнить код на R в Google Colab?

Ответ. Да, это возможно. Причем двумя способами.

Способ 1. Откройте ноутбук. Введите и исполните команду %load_ext rpy2.ipython. В последующих ячейках введите %R, чтобы в этой же строке написать код на R или %%R, если хотите, чтобы вся ячейка исполнилась как код на R (так называемые магические команды).

В этом случае мы можем исполнять код на двух языках внутри одного ноутбука.

Приведенный выше код можно найти в дополнительных материалах⧉ к занятию.

Способ 2. Если вы хотите, чтобы весь код исполнялся на R (как мы это делали в Jupyter Notebook), создайте новый ноутбук, используя следующую ссылку:

https://colab.research.google.com/#create=true&language=r

Теперь, если вы зайдете на вкладку Runtime → Change runtime type (Среда выполнения Сменить среду выполнения), то увидите, что можете выбирать между Python и R.

смена среды выполнения с Питона на R

Выведем версию R в Google Colab.

Посмотреть на установленные пакеты можно с помощью installed.packages(). Созданный ноутбук Google Colab на R доступен по ссылке⧉.


Вопрос. Очень медленно загружается Anaconda. Можно ли что-то сделать?

Ответ. Можно работать через Anaconda Prompt, эта программа быстрее графического интерфейса Anaconda Navigator.

Кроме того, можно использовать дистрибутив Miniconda⧉, в который входит conda, Питон и несколько ключевых пакетов. Остальные пакеты устанавливаются вручную по мере необходимости.


Вопрос. Разве Jupyter не должен писаться через i, как Jupiter?

Ответ. Вы правы в том плане, что название Jupyter Notebook происходит не от планеты Юпитер, которая по-английски как раз пишется через i (Jupiter), а представляет собой акроним от названий языков программирования Julia, Python и R.

При этом, как утверждают разработчики, слово Jupyter также отсылает к тетрадям (notebooks) Галилея, в которых он, в частности, документировал наблюдение за лунами Юпитера.


Вопрос. В каких еще программах можно писать код на Питоне и R?

Ответ. Таких программ несколько. Довольно удобно пользоваться облачным решением Kaggle. Там можно создавать как скрипты (scripts, в том числе RMarkdown Scripts), так и ноутбуки на Питоне и R. Подробнее можно почитать в документации⧉ на их сайте.


Вопрос. Можно ли создать виртуальное окружение каким-либо другим способом помимо программы conda?

Ответ. Да, можно. Вот коротко, какие шаги нужно выполнить.

Вначале убедитесь, что у вас уже установлен Питон. В нем по умолчанию содержится модуль venv, который как раз предназначен для создания виртуального окружения.

Шаг 1. Создайте папку с вашим проектом, например, пусть это будет папка webapp для веб-приложения на популярном фреймворке для Питона Django.

папка с проектом веб-приложения

Шаг 2. В командной строке перейдите в папку webapp.

переход в папку с проектом веб-приложения в командной строке

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

По сути мы говорим Питону создать окружение djenv (название может быть любым) с помощью модуля venv. Переключатель (flag или switch) -m подсказывает Питону, что venv — это модуль, а не файл.

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

папка виртуального окружения

Шаг 3. Активируем это виртуальное окружение следующей командой.

активация виртуального окружения в командной строке

Здесь мы обращаемся к файлу activate внутри папки Scripts. Как вы видите, название окружения появилось слева от пути к папке.

Теперь через pip можно устанавливать пакеты, которые будут «видны» только внутри виртуального окружения djenv.

Шаг 4. Выйти из этого виртуального окружения можно с помощью команды deactivate. Если вам нужно удалить окружение, сначала деактивируйте его, а затем вручную удалите соответствующую папку.


Вопрос. Что такое IPython и CPython, и чем они отличаются?

Ответ. CPython — это «традиционный» или эталонный интерпретатор Питона. Именно этот интерпретатор мы скачали с официального сайта.

IPython (Interactive Python) — это интерактивная оболочка, которая расширяет возможности, например, командной строки, которой мы пользовались ранее. Проект IPython со временем превратился в Jupyter Notebook.

Установить ipython можно из командной строки с помощью команды

После этого введите команду ipython и командная строка превратится в оболочку IPython, которая во многом похожа на Jupyter Notebook.

интерфейс ipython

В частности, мы видим, что появляется очередность выполнения ячеек In[1]. Код лучше организован, подсвечен разными цветами, выставляется автоматический отступ и появляются подсказки при написании кода.

особенности ipython

Также появляются уже знакомые нам магические команды. Например, можно посмотреть на адрес текущей папки или на созданные переменные.

магические команды в ipython

Для очистки экрана от кода используется команда cls, для выхода — exit.