Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
iis-project/docs/jupyter.md

11 KiB

Использование среды Jupyter

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

Опционально можно использовать дополнение papermill для простого параметризованного исполнения блокнотов.

Установка

Общий порядок

Внимание: Оптимальный порядок установки и конфигурации Jupyter для работы с проектом неоднозначен. См. обоснование выбранного здесь порядка работы с блокнотами Jupyter и возможные альтернативные варианты в статье Использование Jupyter с виртуальными окружениями Python.

  1. Jupyter и дополнения должны быть установлены в систему, а не в виртуальное окружение. При необходимости деактивируйте виртуальное окружение.

    deactivate
    
  2. Установите Jupyter и Jupytext в систему (не в виртуальное окружение).

    pip install -U notebook jupytext
    

    Полная инструкция по установке Jupytext: Installation — Jupytext documentation.

  3. Опционально, установите papermill в систему (не в виртуальное окружение).

    pip install -U papermill
    

    Полная инструкция по установке: Installation - papermill 2.4.0 documentation.

  4. Активируйте виртуальное окружение повторно.

  5. Установите ядро Jupyter, связанное с данным виртуальным окружением, в директорию этого виртуального окружения. Укажите следующее имя ядра: python3_venv.

    python -m ipykernel --sys-prefix --name python3_venv
    
  6. Опционально, заранее сохраните в переменную окружения JUPYTER_PATH путь к данным Jupyter в виртуальном окружении <path> — см. п. 1 в инструкции по использованию.

    • Windows (PowerShell):

      [System.Environment]::SetEnvironmentVariable('JUPYTER_PATH', "<path>;$env:JUPYTER_PATH", 'User')
      
    • Windows (cmd):

      setx JUPYTER_PATH "<path>;%PATH%;JUPYTER_PATH"
      
    • UNIX (sh):

      echo 'export JUPYTER_PATH="<path>:$JUPYTER_PATH"' >> ~/.profile
      

Внимание: На данном этапе могут отсутствовать пригодные для прямого использования блокноты .ipynb (например, если проект развёртывается с нуля). Об использовании спаренных блокнотов и конвертации форматов см. Использование Jupytext.

Зависимости

Используемые при работе с Jupyter зависимости — пакеты Python — на данный момент включены в общие зависимости (см. выше), дополнительных действий не требуется.

Работа с блокнотами Jupyter

Jupyter

  1. Если при выполнении инструкции по установке Вы не сохранили в переменную окружения JUPYTER_PATH путь к данным Jupyter в виртуальном окружении, этот путь нужно добавить в переменную окружения сейчас.

    Добавьте в переменную окружения JUPYTER_PATH абсолютный путь (далее обозначаемый <path>) $VIRTUAL_ENV/share/jupyter, где следует заменить $VIRTUAL_ENV на путь к директории, где развёрнуто виртуальное окружение. Для инструментов venv, virtualenv можно просто в активном виртуальном окружении использовать подстановку переменной окружения VIRTUAL_ENV (активное виртуальное окружение не повлияет на дальнейшие шаги).

    • Windows (PowerShell):

      $env:JUPYTER_PATH = "<path>;$env:JUPYTER_PATH"
      
    • Windows (cmd):

      set "JUPYTER_PATH=<path>;%JUPYTER_PATH%"
      
    • UNIX (sh):

      export JUPYTER_PATH="<path>:$JUPYTER_PATH"
      
  2. Запустите глобальный установленное приложение Jupyter (не из виртуального окружения).

    • Например, запустите Jupyter Notebook:

      jupyter notebook
      

      Веб-приложение Notebook должно открыться в веб-браузере автоматически. Если этого не произошло, найдите в сообщениях сервера Jupyter строку примерно следующего содержания:

      [I 08:58:24.417 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/
      

      Откройте веб-браузер и перейдите по ссылке, выведенной в конце указанного сообщения.

    См. также документацию Jupyter.

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

  4. Если приложение Jupyter запрашивает выбор ядра Jupyter (kernel) или Вы сталкиваетесь с необъяснимыми ошибками импортов, выберите для текущего блокнота ядро с именем python3_venv.

    • Jupyter Notebook: Может понадобиться выбор вручную; кнопка для выбора ядра для открытого блокнота находится в верхнем правом углу веб-страницы.

Расширение Jupyter для Visual Studio Code

  1. Запустите Visual Studio Code.

  2. Откройте корневую директорию проекта в VS Code (File -> Open Folder...).

  3. Если Вы открыли директорию проекта и VS Code запрашивает выбор автоматически обнаруженного виртуального окружения, согласитесь.

  4. Если VS Code запрашивает выбор автоматически обнаруженного виртуального окружения, согласитесь.

    Иначе укажите своё виртуальное окружение самостоятельно.

  5. Используйте VS Code с расширением Jupyter для навигации по файловой системе (в частности, по каталогу eda/), редактирования и исполнения кода в блокнотах. Не забывайте при открытии любого блокнота проверять, что выбрано корректное ядро Jupyter (принадлежащее корректному виртуальному окружению). (Кнопка для выбора ядра для открытого блокнота находится в верхнем правом углу области содержимого вкладки; по умолчанию Вы увидите название выбранного виртуального окружения; если ядро не выбрано, на кнопке написано Select Kernel.)

Использование Jupytext

Описанные ниже команды jupytext используют глобальной установленный экземпляр Jupytext (однако его можно запускать и изнутри виртуального окружения).

Для автоматической синхронизации связанных блокнотов (включая создание блокнотов отсутствующих, но ожидаемых форматов):

jupytext --sync eda/cars_eda.py

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

Внимание: С расширением Jupyter для Visual Studio Code Jupytext не работает напрямую. Для использования блокнотов .ipynb с расширением Jupyter для VS Code нужно синхронизировать текстовый файл под контролем версий и файл .ipynb вручную указанными выше командами. Однако заметьте, что это же расширение может исполнять блокнот в текстовом формате самостоятельно, посредством автоматизированного ведения временного блокнота; и оно даже автоматически создаёт/подхватывает локальное ядро Jupyter в виртуальном окружении.