Как установить jupiter notebook на windows 10
Перейти к содержимому

Как установить jupiter notebook на windows 10

  • автор:

Создание и настройка портативной сборки Jupyter Notebook и Lab на Windows. Часть 1

Всем привет. Когда я начинал изучение Python, устанавливал впервые Jupyter Notebook, потом пытался передать с созданное в нём приложение на предприятие, я часто сталкивался с различными проблемами. То кириллица в имени пользователя мешает, то настройки не перенеслись, то ещё чего-то. Все эти проблемы я преодолел в основном самостоятельно, используя Google и затратив немало времени на их решение.

По мере роста опыта я научился создавать папку, в которой лежит переносимое с одного компьютера на другой виртуальное окружение Python, настройки Jupyter и Matplotlib, портативные программы (ffmpeg и др.) и шрифты. Я мог написать дома программу, скопировать всю эту папку на компьютер предприятия, и быть уверенным, что ничего не потеряется и не сломается на ровном месте. Потом я подумал, что такую папку можно дать и новичку в Python, и он получит полностью настроенную и переносимую среду.

Оглавление

  • Введение
  • Краткая инструкция по созданию портативной сборки Jupyter
  • Установка Miniconda (Python 3.7)
  • Создание структуры каталогов
  • Создание переносимого виртуального окружения Python
    • Создание виртуального окружения с помощью conda
    • Исправление ошибки HTTP 000 CONNECTION FAILED при создании виртуального окружения
    • Активация виртуального окружения
    • Установка пакетов Python в виртуальном окружении
    • Выход из виртуального окружения Python
    • Настройка переменных окружения для Jupyter, IPython и Matplotlib
    • Создание файла для запуска Jupyter с настройками пользователя
    • Дополнительные файлы для выполнения служебных действий

    Введение

    В последние годы Python стал популярным языком программирования. Его часто используют для написания математических расчётов, анализа больших данных, машинного обучения и построения нейросетей. После появления конструкций asinc и await стало возможным написания быстрых веб-фреймворков. Производительность Python постепенно повышается из релиза в релиз, а использование Cython или Numba может сделать приложение даже более быстрым, чем на других языках программирования. Например, скорость работы веб-фреймворка Vibora (en) сопоставима со скоростью работы решений на Go (en) . В 2018 году Python официально стал языком для изучения в школах и вузах Франции (en) и Казахстана (en) . В России как минимум некоторые кафедры перешли на Python, например, кафедра РК-6 (ru) в МГТУ им. Н.Э. Баумана.

    Приступая к изучению Python, новые пользователи порой сталкиваются с трудностями при установке необходимых библиотек и настройке среды программирования. Если имя пользователя Windows содержит не латинские символы, некоторые библиотеки могли не установиться или не запускаться. У начинающих пользователей могут возникать проблемы с настройкой Jupyter Notebook на локальном компьютере. Если он установлен на диске C:\ , как открыть файл на диске D:\ ? Когда я делал первые шаги в Python, мне тоже приходилось преодолевать эту трудности.

    Наконец, если все проблемы позади, могут возникнуть трудности передать приложение другому пользователю. Я сталкивался с ситуацией, когда созданное мною виртуальное окружение для Python отказывалось работать на другом компьютере. Кроме того, Jupyter Notebook и Matplotlib хранят свои настройки в папке пользователя, что усложняет перенос приложений, использующих специфичные настройки.

    Решением описанных выше проблем будет создание полностью портативной сборки Jupyter Notebook и/или Jupyter Lab на Windows. Она хранит в себе интерпретатор Python, его библиотеки и настройки, настройки всех необходимых сторонних библиотек, включая Matplotlib и Jupyter, не привязано к имени пользователя и не будет ругаться, если вы запустите её на другом компьютере. Мы можем упаковать такую сборку в архив, либо написать скрипт или программу, которая создаст такую же сборку на компьютере абсолютного новичка. Более продвинутым пользователям портативная сборка может быть полезна тем, что она позволяет хранить окружение Python и настройки библиотек в разных местах. Вы можете разместить папку с настройками в специальное место, которое синхронизируется с облачным хранилищем: Dropbox, облако Mail.ru*, Яндекса или Google. За счёт этого на всех компьютерах автоматически получится локально работающая среда с одинаковыми настройками.

    *Да, то самое, клиент которого под Linux больше не коннектится (ru) . Если уберут аналогичный под Windows, мне придётся искать замену. 1 Тб на дороге бесплатно не валяется.

    Для простоты восприятия материала я решил описать создание портативной сборки под Windows. Но эта инструкция с минимальными изменениями годится для создания сборки на Linux и Mac OS. Статья в первую очередь предназначена для новичков, поэтому я постарался описать как можно подробнее и проще для восприятия.

    Статья состоит из двух частей. В первой части мы создадим портативную сборку, во второй займёмся настройками для Jupyter Notebook, Jupyter Lab, IPython и Matplotlib.

    Краткая инструкция по созданию портативной сборки Jupyter

    1. Создайте папку C:\Dev . В ней будут установлены Minconda и портативная сборка Jupyter*.
      *Здесь и далее Jupyter = Jupyter Notebook + Juputer Lab.
    2. Скачайте инсталлятор Miniconda с сайта https://conda.io/miniconda (en) . Выберите Python 3 для Windows 64 бит или 32 бит в зависимости от разрядности вашей операционной системы. Установите Miniconda в папку C:\Dev\Miniconda3 .
    3. Создайте следующую структуру каталогов для портативной сборки Jupyter:
    C:\ Dev\ Jupyter\ dist\ apps\ conf\ backup\ ipython\ jupyter\ matplotlib\ fonts\ projects\
    C:\Dev\Miniconda3\Scripts\conda.exe create -p C:\Dev\Jupyter\dist\pyenv3.7-win64 --copy --yes python=3 conda

    *Вы можете использовать канал conda-forge для установки более свежих библиотек, добавив аргумент -c conda-forge :

    C:\Dev\Miniconda3\Scripts\conda.exe create -p C:\Dev\Jupyter\dist\pyenv3.7-win64 --copy --yes -c conda-forge python=3 conda
    C:\Dev\Jupyter\dist\pyenv3.7-win64\Scripts\activate pip --no-cache-dir install numpy scipy matplotlib jupyter jupyterlab

    Примечание: если вам необходимо установить Numpy и Scipy, которые используют библиотеку MKL от Intel для ускорения расчётов, используйте (en) intel-numpy вместо numpy и intel-scipy вместо scipy (устанавливается только в Python 3.6!):

    pip --no-cache-dir install intel-numpy intel-scipy matplotlib jupyter jupyterlab

    После установки выполните:

    conda.bat deactivate

    *Если возникнут ошибки при установке, попробуйте так:

    C:\Dev\Jupyter\dist\pyenv3.7-win64\Scirpts\activate conda config --add channels conda-forge conda install numpy scipy matplotlib jupyter jupyterlab

    и после окончания установки

    conda.bat deactivate
    @echo off set conf_path=%~dp0\conf set JUPYTER_CONFIG_DIR=%conf_path%\jupyter set JUPYTER_DATA_DIR=%conf_path%\jupyter\data set JUPYTER_RUNTIME_DIR=%conf_path%\jupyter\data\runtime set IPYTHONDIR=%conf_path%\ipython set MPLCONFIGDIR=%conf_path%\matplotlib REM Matplotlib search FFMPEG in PATH variable only! set PATH=%~dp0\apps\ffmpeg\bin;%PATH%
    @echo off call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter-notebook.exe --notebook-dir=%1
    @echo off call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter-lab.exe --notebook-dir=%1
    @echo off REM Enable extension in Jupyter Notebook. REM Example: REM enable_extension.bat widgetsnbextension call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter-nbextension.exe enable %1
     C:\Dev\Miniconda3\Scripts\conda.exe clean --all

    Установка Miniconda (Python 3.7)

    Давайте создадим в корне диска C:\ папку Dev . В этой папке я складываю все программы и инструменты для разработки, которые почему-то предпочитают устанавливаться не в C:\Program Files . Например, туда я устанавливаю Ruby, Go, Python, Jupyter, Msys, SQLite Studio и т.д.

    Сначала нам необходимо установить Python. У Python есть две ветки: Python 2 и Python 3. Python 2 поддерживается (en) до 2020 года, поэтому будем ставить только Python 3.

    Для установки Python 3 обычно обращаются к официальному сайту python.org (en) , откуда скачивают его и устанавливают. Однако мы хотим получить переносимую сборку, поэтому поступим иначе: мы скачаем и установим Miniconda.

    Что такое Miniconda? По факту это Python с предустановленным и настроенным менеджером пакетов conda . Консольная программа conda позволит нам создать папку, в которой будет Python нужной нам версии вне зависимости от того, какая версия Python идёт в составе Miniconda. Также с помощью conda в эту папку можно установить практически все известные библиотеки для Python: Numpy, Scipy, Matplotlib, Sympy и т.д. Папка, в которую установлен Python и его библиотеки, называется виртуальным окружением. Библиотеки для Python поставляются в форме специальных архивов, которые называются пакетами.

    У conda есть отличительные особенности, из-за которой она удобна и для начинающих и опытных пользователей:

    • Пакеты Python, которые устанавливаются через conda, уже скомпилированы под Windows. Меньше вероятность, что попытка установить его завершится ошибкой*.
    • Вы можете создать виртуальное окружение с той версией Python, которая вам нужна. Не имеет значения, какая версия Python установлена с Miniconda.

    *Надо отметить, что ситуация с установкой пакетов в Python из года в год улучшается. Несколько лет назад я не смог установить Numpy через pip (выдавалась ошибка), и я использовал conda . В 2018 году я попробовал последнюю версию pip , и скачался файл с расширением .whl (так называемое «колесо») с уже скомпилированным Numpy, и всё установилось прекрасно.

    Итак, нам нужно скачать и установить Miniconda. Для этого пройдём на https://conda.io/miniconda (en) и выберем 64-битную версию для Windows на Python 3. Если у вас 32-битных компьютер, вам следует скачать 32-битную версию.

    Miniconda ставится так же, как и обычное Windows приложение:

    1. Запускаем инсталлятор, жмём Next
      01
    2. Соглашаемся с лицензионным соглашением I Agree
      02
    3. Я предпочитаю установку для всех пользователей, потому что это даст мне возможность указать путь для установки. Выбираем пункт «All users»:
      03
    4. Корректируем путь для установки на C:\Dev\Miniconda3 :
      04
    5. Здесь я ставлю оба флажка. Флажок «Add Anaconda to the system PATH environment variable» сделает команду conda доступной в терминале из любого каталога. Если вы этот флажок не поставите, единственное, что изменится, это то, что в терминале вместо conda вам понадобится набрать полный путь к conda.exe . Я не устанавливаю Anaconda, потому что она мне ставит много чего лишнего, поэтому я игнорирую нежелательность установки данного флажка. Если вы поставите этот флажок, а после установки передумаете, вы можете просто удалить conda из системных переменных. Это просто. Но если не знаете, можете загуглить или спросить. Контакты в конце статьи.
      Я также ставлю флажок «Register Anaconda as the system Python 3.7». Если какой-то программе вдруг понадобится Python, она будет использовать Python, установленный вместе с Miniconda. Также данный флажок сделает команду python доступной в терминале из любой папки. Данный флажок желательно поставить, если до этого вы не устанавливали Python. Если уже какой-то Python установлен, я бы не советовал ставить этот флажок сейчас, а скорректировать системные переменные при необходимости.
      После этого нажимаем Install и начнётся процесс установки:
      05
    6. Во время установки можете нажать Show details. Тем самым вы увидите больше информации о том, что именно происходит во время установки. Но это не обязательно.
    7. Когда установка закончится, появится фраза «Completed», а кнопка Next станет доступной. Жмём Next
      07
    8. В последнем окне нам предлагается узнать про Anaconda Cloud (это первый флажок) и как начать работу с Anaconda (второй флажок). Мне ничего из этого не нужно, поэтому я снимаю все флажки и нажимаю Finish. Установка Miniconda завершена.
      08

    После установки Miniconda в папке C:\Dev мы увидим новую папку Miniconda весом примерно 340 Мб. Да, это немало, и она ещё будет раздуваться. Позже я покажу, как быстро и безопасно уменьшать её объём.

    Зайдём в папку Miniconda . Немного прокрутив список файлов, мы увидим python.exe . Тот самый Python 3.7, который установился в моём случае (на скриншоте Directory Opus).

    09

    Если дважды кликнуть по python.exe — запустится консольное окно, в котором можно вводить команды Python.

    10

    Вы можете для теста после >>> ввести:

    import antigravity

    и нажать Enter. Откроется браузер по умолчанию с комиксом про Python на xkcd.

    В папке C:\Dev\Miniconda\Scripts мы найдём conda.exe . Эта та самая консольная команда, с помощью которой мы будем создавать виртуальное окружение Python.

    Создание структуры каталогов

    Теперь у нас всё готово для того, чтобы начать создание портативной сборки Jupyter Notebook. Для начала создадим следующую структуру каталогов:

    C:\ Dev\ Jupyter\ dist\ apps\ conf\ backup\ ipython\ jupyter\ matplotlib\ fonts\ projects\

    В папке Dev создайте папку Jupyter . В свою очередь в папке Jupyter создайте папки dist и projects . В папке dist будет виртуальное окружение Python со всеми необходимыми библиотеками, файлы настроек, дополнительные программы, шрифты — всё, что необходимо для нашей разработки на Python в среде Jupyter Notebook или Jupyter Lab. Папка projects — это место по умолчанию для проектов. Сам я эту папку обычно не использую, и она остаётся пустой. Но если мне понадобится передать программу другому пользователю вместе с настроенным Jupyter, я положу свою программу в эту папку projects , сделаю архив всей папки Jupyter и отправлю архив пользователю.

    Папка apps содержит вспомогательные программы. Например, я часто кладу туда портативную версию FFMPEG, которая нужная Matplotlib для создания анимации.

    Папка conf содержит настройки различных библиотек. В нашем случае для IPython, Jupyter и Matplotlib.

    В папку conf\backup я кладу копии своих файлов настроек на случай, если в будущем где-то напортачу с настройками.

    Папка fonts содержит шрифты, которые могут быть использованы, например, в Matplotlib. Лично мне понравились Roboto и PTSerif.

    Кроме папок apps , conf и fonts вы можете создать и другие папки на своё усмотрение. Например, папку temp для временных файлов.

    Создание переносимого виртуального окружения Python

    Создание виртуального окружения с помощью conda

    Откройте командную строку (+R → cmd.exe → Enter) и введите*:

    C:\Dev\Miniconda3\Scripts\conda.exe create -p C:\Dev\Jupyter\dist\pyenv3.7-win64 --copy --yes python=3 conda

    *Для установки более свежих версий библиотек можно подключить канал conda-forge через аргумент -c conda-forge :

    C:\Dev\Miniconda3\Scripts\conda.exe create -p C:\Dev\Jupyter\dist\pyenv3.7-win64 --copy --yes -c conda-forge python=3 conda

    Если потом понадобится удалить канал conda-forge , зайдите в Проводнике в папку %userprofile% , найдите в ней файл .condarc , откройте его блокнотом и удалите строку conda-forge .

    Рассмотрим эту команду. Сначала идёт полный путь к conda.exe . Если при установке Minconda вы поставили галочку «Add Anaconda to the system PATH environment variable», вместо полного пути достаточно написать просто conda .

    Слово create даёт команду создания нового окружения. Аргумент -p говорит о том, что это окружение должно быть создано там, где мы укажем, а не в папке C:\Dev\Miniconda3\envs . В примере прописан полный путь и название будущей папки pyenv3.7-win64 (расшифровка: python 3.7 environment for Windows 64-bit). Если у вас командная строка открыта в папке dist или вы с помощью команды cd заранее перешли в эту папку, вместо полного пути можно было написать просто pyenv3.7-win64 .

    Аргумент —copy сообщает conda , что в виртуальном окружении должны быть установлены сами пакеты. В противном случае пакет будет установлен в папке C:\Dev\Miniconda3 , а в виртуальном окружении будет ссылка на него. Вы не заметите эту подмену, пока не попробуете запустить виртуальное окружение на другом компьютере.

    Далее идёт перечисление пакетов. Прежде всего мы должны установить сам Python третьей версии. Также я обязательно указываю conda . Т.е. программа conda будет установлена дважды: в составе Miniconda и в виртуальном окружении. Установка conda в виртуальном окружении увеличивает его размер совсем чуть-чуть, но даст возможность пользователю обновить пакеты в виртуальном окружении на компьютере, где Miniconda не установлена. Это делает виртуальное окружение полностью автономным. Вы можете даже деинсталлировать Miniconda после создания виртуального окружения, и оно продолжит работать как ни в чём не бывало. Я, правда, оставляю Miniconda на тот случай, если какому-то приложению понадобится Python.

    Вообще, кроме Python и conda можно было сразу указать необходимые пакеты, но в 2018 году я перестал так делать и вместо этого стал использовать для установки пакетов pip . Во-первых, новейшие версии pip стали скачивать .whl файлы с уже скомпилированными библиотеками, и проблемы с установкой ряда библиотек исчезли. Во-вторых, размер виртуального окружения при установке пакетов через pip получается в 3 раза меньше, чем при установке пакетов через conda .

    Исправление ошибки HTTP 000 CONNECTION FAILED при создании виртуального окружения

    У одного из пользователей при выполнении команды

    C:\Dev\Miniconda3\Scripts\conda.exe create -p C:\Dev\Jupyter\dist\pyenv3.7-win64 --copy --yes -c conda-forge python=3 conda

    столкнулся с ошибкой следующего содержания:

    > C:\Users\Asus>C:\Dev\Miniconda3\Scripts\conda.exe create -p C:\Dev\Jupyter\dist\pyenv3.7-win64 --copy --yes -c conda-forge python=3 conda Collecting package metadata: failed CondaHTTPError: HTTP 000 CONNECTION FAILED for url Elapsed: - An HTTP error occurred when trying to retrieve this URL. HTTP errors are often intermittent, and a simple retry will get you on your way. SSLError(MaxRetryError('HTTPSConnectionPool(host=\'conda.anaconda.org\', port=443): Max retries exceeded with url: /conda-forge/win-64/repodata.json (Caused by SSLError("Can\'t connect to HTTPS URL because the SSL module is not available."))'))

    Мне потребовался не один час, чтобы разобраться с ней, потому что на первый взгляд проблема либо с некорректной установкой Miniconda либо с сетью. У некоторых корпоративных пользователей действительно был заблокирован этот ресурс, но проблема происходила у пользователя дома. Переустановка Miniconda не помогла.

    В итоге оказалось, что данная ошибка означает, что conda.exe не нашло файл openssl.exe . В итоге было применено следующее решение:

    1. Создали папку C:\Dev\openssl .
    2. В папке C:\Dev\Miniconda3\pkgs нашли папку, название которой начинается с openssl . Например, openssl-1.1.1a-he774522_0 . Если папок несколько, выбираем ту, у которой в названии номер больше.
    3. В найденной папке ищем файл openssl.exe и копируем openssl.exe и все файлы и папки, которые лежат вместе с openssl.exe , в C:\Dev\openssl .
    4. В Проводнике Windows заходим в «Этот компьютер» (где перечисляются все диски на компьютере). В свободном месте правым кликом мыши открываем контекстное меню и выбираем в самом низу пункт «Свойства».
    5. В открывшемся окне находим «Дополнительные параметры системы»:
      1549300231528
    6. На вкладке «Дополнительно» находим кнопку Переменные среды:
    7. Для Windows 7 и 8: в разделе «Переменные среды для пользователя» дважды кликаем по переменной Path . Если в конце строки отсутствует точка с запятой, поставим её, и в конце этой строки допишем:

    C:\Dev\openssl;


    Для Windows 10: в разделе «Переменные среды для пользователя» дважды кликаем по переменной Path . В итоге должно появиться такое окно:

    Нажимаем кнопку «Создать» и вставляем путь C:\Dev\openssl .

  • Закройте и откройте командную строку снова. Теперь всё должно работать. Если вдруг не заработало — надо гуглить ошибку или обращаться на форумы.
  • Активация виртуального окружения

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

    13

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

    C:\Dev\Jupyter\dist\pyenv3.7-win64\Scripts\activate

    В результате вы должны получить примерно следующее:

    Слово (base) в начале строки как указывает на то, что мы вошли в нужное нам виртуальное окружение.

    Установка пакетов Python в виртуальном окружении

    Теперь можно установить пакеты*:

    pip --no-cache-dir install numpy scipy matplotlib jupyter jupyterlab

    Аргумент —no-cache-dir сообщает pip , что не следует кешировать скачанные пакеты. Это позволит нам не увеличивать размер папки виртуального окружения.

    *Существует разработанная Intel библиотека MKL (Math Kernel Library) (en) , которая ускоряет работу на больших данных для популярных библиотек Python, в частности, Numpy и Scipy. Если вы хотите установить Numpy и Scipy, которые используют MKL, следует использовать (en) intel-numpy вместо numpy и intel-scipy вместо scipy :

    pip --no-cache-dir install intel-numpy intel-scipy matplotlib jupyter jupyterlab

    У меня получилось установить intel-numpy и intel-scipy только в виртуальном окружении с Python 3.6. Если вы хотите использовать Numpy и Scipy с MKL в окружении с Python 3.7, необходимо использовать команду:

    conda install numpy scipy

    Если вы не уверены, что ставить, используйте просто numpy и scipy .

    Если в процессе установки через pip возникнут ошибки, попробуйте установить проблемные пакеты через conda . Пример:

    conda install numpy scipy matplotlib jupyter jupyterlab

    Выход из виртуального окружения Python

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

    conda.bat deactivate

    *Раньше я набирал просто deactivate , но это почему-то устарело, и надо набирать conda.bat deactivate . Даже conda deactivate будет неправильно.

    Подготовка портативной сборки Jupyter к запуску

    Создадим несколько .bat файлов, которые будут заставят Jupyter и Matplotlib хранить настройки в папке dist\config , а также будут управлять запуском Jupyter Notebook и Jupyter Lab.

    Настройка переменных окружения для Jupyter, IPython и Matplotlib

    Каталоги размещения настроек определяются переменными среды Windows. Изменив эти переменные, мы заставим Jupyter и Matplotlib хранить свои файлы там, где это нужно именно нам. В папке C:\Dev\Jupyter\dist создайте файл setenv.bat следующего содержания:

    @echo off set conf_path=%~dp0\conf set JUPYTER_CONFIG_DIR=%conf_path%\jupyter set JUPYTER_DATA_DIR=%conf_path%\jupyter\data set JUPYTER_RUNTIME_DIR=%conf_path%\jupyter\data\runtime set IPYTHONDIR=%conf_path%\ipython set MPLCONFIGDIR=%conf_path%\matplotlib REM Matplotlib search FFMPEG in PATH variable only! set PATH=%~dp0\apps\ffmpeg\bin;%PATH%

    Разберём, что делается в этом файле.

    Команда @echo off необходима для того, чтобы в командной строке не выводилось сообщение при выполнении каждой строки нашего файла.

    Команда set создаёт переменную. Конструкция %~dp0 означает полный путь к setenv.bat . Обратите внимание, что пробелов до и после знака = быть не должно.

    Затем мы настраиваем переменные для Jupyter:

    • JUPYTER_CONFIG_DIR — папка для файлов конфигурации Jupyter (документация (en) ),
    • JUPYTER_DATA_DIR — папка для устанавливаемых файлов данных (расширения и ядра ( kernel ) для Jupyter) (документация (en) ),
    • JUPYTER_RUNTIME_DIR — папка для исполняемых файлов Jupyter ( runtime files ) (документация (en) ),
    • IPYTHONDIR — папка для файлов конфигурации IPython (документация (en) ),
    • MPLCONFIGDIR — папка, где Matplotlib хранит свои настройки и кэш (документация (en) ).

    Если вы планируете создавать анимации с Matplotlib, вам понадобится FFMPEG (ru) . Я скачиваю (en) zip архив FFMPEG, распаковываю его содержание C:\Dev\Jupyter\dist\apps\ffmpeg .

    Строка, которая начинается с REM — комментарий. Matplotlib почему-то ищет FFMPEG только в %PATH% . Я записываю путь к FFMPEG в начало %PATH , а не в его конец, чтобы при поиске первым нашёлся тот FFMPEG, который я положил в dist\apps .

    Создание файла для запуска Jupyter с настройками пользователя

    В папке C:\Dev\Jupyter\dist создайте файл run_jupyter_notebook.bat следующего содержания:

    @echo off call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter-notebook.exe --notebook-dir=%1

    Аналогично, в папке C:\Dev\Jupyter\dist создайте файл run_jupyter_lab.bat следующего содержания:

    @echo off call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter-lab.exe --notebook-dir=%1

    Каждый из этих файлов сначала выполняет setenv.bat , т.е. настраивает переменные окружения, потом запускает Jupyte Notebook или Jupyter Lab и указывает ему, где папка с нашими файлами для проекта.

    Предположим, что есть папка D:\my-projects , в которой мы будем хранить файлы Jupyter Notebook или Lab. В этой папке создайте ярлыки на файлы run_jupyter_notebook.bat и run_jupyter_lab.bat . После этого в обязательном порядке откройте свойства каждого из этих ярлыков и сделайте пустой строку «Рабочая папка». Если вы этого не сделаете — Jupyter не увидит вашу папку!

    После того, как это сделали, можете кликнуть дважды по любому из ярлыков. Сначала появится новое окно командной строки, потом откроется браузер по умолчанию и в нём запустится Jupyter Notebook или Lab в новой вкладке. Поздравляю: квест пройден!

    Дополнительные файлы для выполнения служебных действий

    Для Jupyter Notebook написаны расширения (о них будет подробнее в части 2). Но их недостаточно установить. Их ещё надо активировать. Согласно документации, вам нужно сделать следующее (не выполняйте эту команду!):

    jupyter nbextension enable

    Но мы не можем выполнить команду в таком виде, потому что настройки окажутся вне портативной сборки. Мы должны сделать иначе:

    C:\Dev\Jupyter\dist\setenv.bat C:\Dev\Jupyter\dist\pyenv3.7-win64\Scripts\jupyter.exe nbextension enable

    Чтобы упростить себе задачу, мы можем в папке C:\Dev\Jupyter\dist создать файл enable_extension.bat следующего содержания:

    @echo off REM Enable extension in Jupyter Notebook. REM Example: REM enable_extension.bat widgetsnbextension call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter-nbextension.exe enable %1

    В итоге наша запись в окне командной строки сократится и станет такой:

    C:\Dev\Jupyter\dist\enable_extension.bat

    Если вам время от времени в окне команд нужно запускать различные действия с jupyter , можно создать в папке C:\Dev\Jupyter\dist файл jupyter.bat следующего содержания:

    @echo off call %~dp0\setenv.bat call %~dp0\pyenv3.7-win64\Scripts\jupyter.exe %1 %2 %3 %4 %5 %6 %7 %8 %9

    Аналогично можно сделать для запуска IPython и других случаев.

    Заключение

    Часть 1 подошла к концу. Мы создали полностью портативную и переносимую сборку Jupyter и можем работать с файлами, которые лежат в нужной нам папке. Для этого создаём ярлыки на run_jupyter_notebook.bat и run_jupyter_lab.bat , в свойствах ярлыков обязательно очищаем строку Рабочая папка», и всё готово к работе.

    В части 2 будут рассмотрены различные вопросы кастомизации Jupyter Notebook, Jupyter Lab и Matplotlib. Научимся подключать расширения в Jupyter Notebook и Jupyter Lab, настраивать сочетания клавиш, размер шрифта и прочие настройки, напишем свои «магические команды».

    Если у вас остались вопросы, но нет аккаунта на Хабре, вот мои контакты:

    Install Python and Jupyter Notebook to Windows 10 (64 bit)

    This blog post is a step-by-step tutorial to install Python and Jupyter Notebook to Windows 10 (64 bit). Python 3.3 or greater, or Python 2.7 is required to install the Jupyter Notebook.

    1. Download Python 3.7.4 from “https://www.python.org/downloads/release/python-374/” url

    2. Choose and select “x86–64 executable installer” for Windows 10–64 bit computer

    3. Select location to save the executable file.

    4. Install Python 3.7.4 (64-bit) to your computer.

    5. Check the installation by running “Idle”

    6. Set “Python37” path and “Python37/Scripts” path to environment variable

    7. Open command prompt and check the python version using “python —version

    8. Install pip using “pip install virtualenv

    9. Upgrade pip using “python -m pip install -upgrade pip

    10. Create a virtual environment called opencv (“virtualenv opencv”)

    11. Move to Scripts folder and activate opencv virtual environment using “activate.bat

    12. Install numpy using “pip install numpy

    13. Install OpenCV using “pip install opencv-python

    14. Install Matplotlib using “pip install matplotlib

    15. Install Jupyter using “python -m pip install jupyter

    16. Run Jupyter Notebook using “jupyter notebook

    17. Start the notebook server and popup dashboard in browser using “localhost:8888/tree” url

    18. Create your first notebook using dashboard

    Jupyter Notebooks in VS Code

    Jupyter (formerly IPython Notebook) is an open-source project that lets you easily combine Markdown text and executable Python source code on one canvas called a notebook. Visual Studio Code supports working with Jupyter Notebooks natively, and through Python code files. This topic covers the native support available for Jupyter Notebooks and demonstrates how to:

    • Create, open, and save Jupyter Notebooks
    • Work with Jupyter code cells
    • View, inspect, and filter variables using the Variable Explorer and Data Viewer
    • Connect to a remote Jupyter server
    • Debug a Jupyter Notebook

    Setting up your environment

    To work with Python in Jupyter Notebooks, you must activate an Anaconda environment in VS Code, or another Python environment in which you’ve installed the Jupyter package. To select an environment, use the Python: Select Interpreter command from the Command Palette ( ⇧⌘P (Windows, Linux Ctrl+Shift+P ) ).

    Once the appropriate environment is activated, you can create and open a Jupyter Notebook, connect to a remote Jupyter server for running code cells, and export a Jupyter Notebook as a Python file.

    Workspace Trust

    When getting started with Jupyter Notebooks, you’ll want to make sure that you are working in a trusted workspace. Harmful code can be embedded in notebooks and the Workspace Trust feature allows you to indicate which folders and their contents should allow or restrict automatic code execution.

    If you attempt to open a notebook when VS Code is in an untrusted workspace running Restricted Mode, you will not be able to execute cells and rich outputs will be hidden.

    Create or open a Jupyter Notebook

    You can create a Jupyter Notebook by running the Create: New Jupyter Notebook command from the Command Palette ( ⇧⌘P (Windows, Linux Ctrl+Shift+P ) ) or by creating a new .ipynb file in your workspace.

    Blank Jupyter Notebook

    Next, select a kernel using the kernel picker in the top right.

    Kernel Picker

    After selecting a kernel, the language picker located in the bottom right of each code cell will automatically update to the language supported by the kernel.

    Language Picker

    If you have an existing Jupyter Notebook, you can open it by right-clicking on the file and opening with VS Code, or through the VS Code File Explorer.

    Running cells

    Once you have a notebook, you can run a code cell using the Run icon to the left of the cell and the output will appear directly below the code cell.

    To run code, you can also use keyboard shortcuts in both command and edit mode. To run the current cell, use Ctrl+Enter . To run the current cell and advance to the next, use Shift+Enter .

    Run Jupyter code cell

    You can run multiple cells by selecting Run All, Run All Above, or Run All Below.

    Run Jupyter code cells

    Save your Jupyter Notebook

    You can save your Jupyter Notebook using the keyboard shortcut Ctrl+S or File > Save.

    Export your Jupyter Notebook

    You can export a Jupyter Notebook as a Python file ( .py ), a PDF, or an HTML file. To export, select the Export action on the main toolbar. You’ll then be presented with a dropdown of file format options.

    Convert Jupyter Notebook to Python file

    Note: For PDF export, you must have TeX installed. If you don’t, you will be notified that you need to install it when you select the PDF option. Also, be aware that if you have SVG-only output in your Notebook, they will not be displayed in the PDF. To have SVG graphics in a PDF, either ensure that your output includes a non-SVG image format or else you can first export to HTML and then save as PDF using your browser.

    Work with code cells in the Notebook Editor

    The Notebook Editor makes it easy to create, edit, and run code cells within your Jupyter Notebook.

    Create a code cell

    By default, a blank notebook will have an empty code cell for you to start with and an existing notebook will place one at the bottom. Add your code to the empty code cell to get started.

    msg = "Hello world" print(msg) 

    Simple Jupyter code cell

    Code cell modes

    While working with code cells, a cell can be in three states: unselected, command mode, and edit mode. A vertical bar to the left of a code cell and editor border shows the current state of a cell. When no bar is visible, the cell is unselected. When a cell is selected, it can be in command mode or in edit mode.

    Unselected Jupyter code cell

    In command mode, a solid vertical bar will appear to the left of the cell. The cell can be operated on and accepts keyboard commands.

    Code cell in command mode

    In edit mode, a solid vertical bar is joined by a border around the cell editor. The cell’s contents (code or Markdown) can be modified.

    Code cell in edit mode

    To switch modes, you can use your keyboard or mouse. On your keyboard, press the Enter key to move to edit mode or the Esc key to move to command mode. With your mouse, click the vertical bar to the left of the cell or out of the code/Markdown region in the code cell.

    Add additional code cells

    You can add code cells using the main toolbar, a cell’s add cell toolbar (visible with hover), and through keyboard commands.

    Add code cells

    To add a new cell below the currently selected cell, use the plus icon in the main toolbar or a cell’s hover toolbar.

    When a code cell is in command mode, use the A key to add a cell above and the B key to add a cell below the selected cell.

    Select a code cell

    You can change a selected code cell using the mouse or the up/down arrow keys on the keyboard. When a code cell is in command mode, you can also use the J key (down) and K key (up).

    Select multiple code cells

    To select multiple cells, start with one cell in selected mode. A filled background indicates selected cells. To select consecutive cells, hold down the Shift key and click the last cell you want to select. To select any group of cells, hold down the Ctrl key and click the cells you’d like to add to your selection.

    Multiselected cells

    Run a single code cell

    Once your code is added, you can run a cell using the Run icon to the left of the cell and the output will be displayed below the code cell.

    Run Jupyter code cell

    To run a selected code cell, you can also use keyboard shortcuts in both command and edit mode. Ctrl+Enter runs the currently selected cell. Shift+Enter runs the currently selected cell and inserts a new cell immediately below (focus moves to new cell). Alt+Enter runs the currently selected cell and inserts a new cell immediately below (focus remains on current cell).

    Run multiple code cells

    Running multiple code cells can be accomplished in many ways. You can use the double arrow in the main toolbar of the Notebook Editor to run all cells within the Notebook or the Run icons with directional arrows in the cell toolbar to run all cells above or below the current code cell.

    Run multiple code cells

    Move a code cell

    You can move cells up or down within a notebook via dragging and dropping. For code cells, the drag and drop area is to the left of the cell editor as indicated below. For rendered Markdown cells, you may click anywhere to drag and drop cells.

    Move a code cell

    To move multiple cells, you can use the same drag and drop areas in any cell included in the selection.

    The keyboard shortcut Alt+Arrow also moves one or multiple selected cells.

    Delete a code cell

    To delete code, you can use the Delete icon in the code cell toolbar. When the selected code cell is in command mode, you can use the keyboard shortcut dd .

    Delete a code cell

    Undo your last change

    You can use the z key to undo your previous change, for example, if you’ve made an accidental edit, you can undo it to the previous correct state, or if you’ve deleted a cell accidentally, you can recover it.

    Switch between code and Markdown

    The Notebook Editor allows you to easily change code cells between Markdown and code. Selecting the language picker in the bottom right of a cell will allow you to switch between Markdown and, if applicable, any other language supported by the selected kernel.

    Change language

    You can also use the keyboard to change the cell type. When a cell is selected and in command mode, the M key switches the cell type to Markdown and the Y key switches the cell type to code.

    Once Markdown is set, you can enter Markdown formatted content to the code cell.

    Raw Markdown displayed in code cell

    To render Markdown cells, you can select the check mark in the cell toolbar, or use the keyboard shortcuts Ctrl+Enter and Shift+Enter .

    How to render Markdown

    Rendered Markdown displayed in code cell

    Clear output or restart/interrupt the kernel

    If you’d like to clear all code cell outputs or restart/interrupt the kernel, you can accomplish that using the main Notebook Editor toolbar.

    Notebook Toolbar

    Enable/disable line numbers

    When you are in command mode, you can enable or disable line numbering within a single code cell by using the L key.

    Line numbers enabled in code cell

    To toggle line numbering for the entire notebook, use Shift+L when in command mode on any cell.

    Line numbers enabled for notebook

    Table of Contents

    To navigate through your notebook, open the File Explorer in the Activity bar. Then open the Outline tab in the Side bar.

    Table of contents

    Note: By default, the outline will only show Markdown. To show code cells, enable the following setting: Notebook > Outline: Show Code Cells.

    IntelliSense support in the Jupyter Notebook Editor

    The Python Jupyter Notebook Editor window has full IntelliSense – code completions, member lists, quick info for methods, and parameter hints. You can be just as productive typing in the Notebook Editor window as you are in the code editor.

    IntelliSense support

    Variable Explorer and Data Viewer

    Within a Python Notebook, it’s possible to view, inspect, sort, and filter the variables within your current Jupyter session. By selecting the Variables icon in the main toolbar after running code and cells, you’ll see a list of the current variables, which will automatically update as variables are used in code. The variables pane will open at the bottom of the notebook.

    Variable Explorer

    Variable Explorer

    Data Viewer

    For additional information about your variables, you can also double-click a row or use the Show variable in data viewer button next to the variable for a more detailed view of a variable in the Data Viewer.

    Data Viewer

    Filtering rows

    Filtering rows in the data viewer can be done by typing in the textbox at the top of each column. Type a string you want to search for and any row that has that string in the column will be found:

    Data Viewer

    If you want to find an exact match, prefix your filter with ‘=’:

    Data Viewer

    More complex filtering can be done by typing a regular expression:

    Data Viewer

    Saving plots

    To save a plot from your notebook, simply hover over the output and select the Save icon in the top right.

    Save output

    Note: There is support for rendering plots created with matplotlib and Altair.

    Custom notebook diffing

    Under the hood, Jupyter Notebooks are JSON files. The segments in a JSON file are rendered as cells that are comprised of three components: input, output, and metadata. Comparing changes made in a notebook using lined-based diffing is difficult and hard to parse. The rich diffing editor for notebooks allows you to easily see changes for each component of a cell.

    You can even customize what types of changes you want displayed within your diffing view. In the top right, select the overflow menu item in the toolbar to customize what cell components you want included. Input differences will always be shown.

    Custom notebook diffing

    To learn more about Git integration within VS Code, visit Source Control in VS Code.

    Debug a Jupyter Notebook

    There are two different ways to debug a Jupyter notebook: a simpler mode called «Run by Line», and full debugging mode.

    Note: Both of these features require ipykernel 6+. See this wiki page for details about installing or upgrading ipykernel.

    Run by Line

    Run by Line lets you execute a cell one line at a time, without being distracted by other VS Code debug features. To start, select the Run by Line button in the cell toolbar:

    Run by line button

    Use the same button to advance by one statement. You can select the cell Stop button to stop early, or the Continue button in the toolbar to continue running to the end of the cell.

    Debug Cell

    If you want to use the full set of debugging features supported in VS Code, such as breakpoints and the ability to step in to other cells and modules, you can use the full VS Code debugger.

    1. Start by setting any breakpoints you need by clicking in the left margin of a notebook cell.
    2. Then select the Debug Cell button in the menu next to the Run button. This will run the cell in a debug session, and will pause on your breakpoints in any code that runs, even if it is in a different cell or a .py file.
    3. You can use the Debug view, Debug Console, and all the buttons in the Debug Toolbar as you normally would in VS Code.

    Debug cell button

    Search through notebook

    You can search through a notebook (or parts of it by filtering the search options) by using the keyboard shortcut Ctrl/Cmd + F . Click the Filter option (funnel icon) to search across:

    • Markdown cell input (Markdown Source)
    • Markdown cell output (Rendered Markdown)
    • Code cell input (Code Cell Source)
    • Code cell output (Cell Output)

    Notebook searches are filtered cell inputs only by default.

    Search options

    Connect to a remote Jupyter server

    You can offload intensive computation in a Jupyter Notebook to other computers by connecting to a remote Jupyter server. Once connected, code cells run on the remote server rather than the local computer.

    To connect to a remote Jupyter server:

    1. Open the Kernel Picker button on the top right-hand side of the notebook (or run the Notebook: Select Notebook Kernel command from the Command Palette). Notebook kernel picker
    2. Select the Existing Jupyter Server option to connect to an existing Jupyter server. Select existing Jupyter server
    3. To connect to an existing server for the first time, select Enter the URL of the running Jupyter server. Choose to connect to an existing server
    4. When prompted to Enter the URL of the running Jupyter server, provide the server’s URI (hostname) with the authentication token included with a ?token= URL parameter. (If you start the server in the VS Code terminal with an authentication token enabled, the URL with the token typically appears in the terminal output from where you can copy it.) Alternatively, you can specify a username and password after providing the URI. Prompt to supply a Jupyter server URI

    Note: For added security, Microsoft recommends configuring your Jupyter server with security precautions such as SSL and token support. This helps ensure that requests sent to the Jupyter server are authenticated and connections to the remote server are encrypted. For guidance about securing a notebook server, refer to the Jupyter documentation.

    Data Science profile template

    Profiles let you quickly switch your extensions, settings, and UI layout depending on your current project or task. To help you get started with Jupyter Notebooks, you can use the Data Science profile template, which is a curated profile with useful extensions, settings, and snippets. You can use a profile template as is or use it as a starting point to customize further for you own workflows.

    You select a profile template through the Profiles > Create Profile. dropdown:

    Create Profile dropdown with profile templates

    Once you select a profile template, you can review the settings and extensions, and remove individual items if you don’t want to include them in your new profile. After creating the new profile based on the template, changes made to settings, extensions, or UI are persisted in your profile.

    Installing jupyter_contrib_nbextensions¶

    To install the jupyter_contrib_nbextensions notebook extensions, three steps are required. First, the Python pip package needs to be installed. Then, the notebook extensions themselves need to be copied to the Jupyter data directory. Finally, the installed notebook extensions can be enabled, either by using built-in Jupyter commands, or more conveniently by using the jupyter_nbextensions_configurator server extension, which is installed as a dependency of this repo.

    The Python package installation step is necessary to allow painless installation of the nbextensions together with additional items like nbconvert templates, pre-/postprocessors, and exporters.

    1. Install the python package¶

    PIP¶

    All of the nbextensions in this repo are provided as parts of a python package, which is installable in the usual manner, using pip or the setup.py script. To install the current version from PyPi, simply type

    pip install jupyter_contrib_nbextensions 

    Alternatively, you can install directly from the current master branch of the repository

    pip install https://github.com/ipython-contrib/jupyter_contrib_nbextensions/tarball/master 

    All the usual pip options apply, e.g. using pip’s —upgrade flag to force an upgrade, or -e for an editable install.

    Conda¶

    There are conda packages for the notebook extensions and the jupyter_nbextensions_configurator available from conda-forge. You can install both using

    conda install -c conda-forge jupyter_contrib_nbextensions 

    This also automatically installs the Javascript and CSS files (using jupyter contrib nbextension install —sys-prefix ), so the second installation step below can therefore be skipped.

    Installation from cloned Repo¶

    You can also install from a cloned repo, which can be useful for development. You can clone the repo using

    git clone https://github.com/ipython-contrib/jupyter_contrib_nbextensions.git 

    Then perform an editable pip install using

    pip install -e jupyter_contrib_nbextensions 

    2. Install javascript and css files¶

    This step copies the nbextensions’ javascript and css files into the jupyter server’s search directory, and edits some jupyter config files. A jupyter subcommand is provided for the purpose:

    jupyter contrib nbextension install --user 

    The command does two things: installs nbextension files, and edits nbconvert config files. The first part is essentially a wrapper around the notebook-provided jupyter nbextension install , and copies relevant javascript and css files to the appropriate jupyter data directory. The second part edits the config files jupyter_nbconvert_config.json and jupyter_notebook_config.json as noted below in the options. The command can take most of the same options as the jupyter-provided versions, including

    • —user to install into the user’s home jupyter directories
    • —system to perform installation into system-wide jupyter directories
    • —sys-prefix to install into python’s sys.prefix , useful for instance in virtual environments, such as with conda
    • —symlink to symlink the nbextensions rather than copying each file (recommended, on non-Windows platforms).
    • —debug , for more-verbose output

    In addition, two further option flags are provided to perform either only the config-editing operations, or only the file-copy operations:

    • —only-files to install nbextension files without editing any config files
    • —only-config to edit the config files without copying/symlinking any nbextension files. This edits the following files in the applicable jupyter config directory:
      • jupyter_nbconvert_config.json to use some of the classes provided in the python module jupyter_contrib_nbextensions.nbconvert_support
      • jupyter_notebook_config.json to enable the serverextension jupyter_nbextensions_configurator .

      Finally, the —perform-running-check option flag is provided in order to prevent the installation from proceeding if a notebook server appears to be currently running (by default, the install will still be performed, even if a notebook server appears to be running).

      An analogous uninstall command is also provided, to remove all of the nbextension files from the jupyter directories.

      3. Enabling/Disabling extensions¶

      To use an nbextension, you’ll also need to enable it, which tells the notebook interface to load it. To do this, you can use a Jupyter subcommand:

      jupyter nbextension enable nbextension require path> 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *