Jupyter Notebook — удобный инструмент для поэтапного развития идей по разработке ПО. Специалисты по данным используют его для записи процесса своей работы, экспериментов с новыми алгоритмами, быстрого создания новых подходов и наблюдения за результатами.
Однако в один прекрасный момент разработчики ПО обращаются к классическим IDE (интегрированным средам разработки), таким как Visual Studio Code и Pycharm, для преобразования идей в библиотеки и фреймворки. Есть ли способ превратить Jupyter в полноценную IDE, в которой «сырые» концепции преобразуются в надежные и повторно используемые модули?
С этой целью разработчики из нескольких организаций, включая QuantStack, Two Sigma, Bloomberg и fast.ai, создали два новых инструмента: nbdev и визуальный отладчик для Jupyter.
В 1983 году Дональд Кнут предложил новую парадигму — грамотное программирование. По его словам, эта методика объединяет язык программирования с языком документации, что делает программы более надежными, портативными, поддерживаемыми и, возможно, более интересными для написания, чем те, которые написаны только на языке высокого уровня. Основная идея состоит в том, чтобы рассматривать программу как литературное произведение, предназначенное для людей, а не для компьютера.
В конце прошлого года поклонники этого подхода, Джереми Ховард и Сильвен Гаггер, представили nbdev. С помощью этого фреймворка работу и эксперименты с кодом можно выполнять в знакомой нам среде Jupyter Notebook. nbdev также позволяет извлечь полезную функциональность в полноценную библиотеку Python с помощью определенных ключевых слов.
В частности, nbdev дополняет Jupyter, добавляя поддержку:
С помощью nbdev разработчики ПО и специалисты по данным могут создавать хорошо задокументированные библиотеки Python, соответствующие лучшим практикам, не покидая среды Jupyter. nbdev находится на PyPI, поэтому для установки просто запустите:
pip install nbdevДля редактируемой установки используйте следующее:
git clone https://github.com/fastai/nbdev
pip install -e nbdev
Перед началом работы рекомендуем прочитать этот пост от разработчиков nbdev, в котором описана его концепция, а также следовать подробному руководству в документации.
Несмотря на то, что nbdev охватывает большинство инструментов, необходимых для имитации разработки в полноценной IDE внутри Jupyter, в нем все еще не хватает одного элемента — визуального отладчика.
Поэтому команда разработчиков из нескольких учреждений выпустила визуальный отладчик Jupyter, который предлагает большую часть функций, ожидаемых от отладчика IDE:
Чтобы воспользоваться этим новым инструментом, необходимо использовать ядро, реализующее протокол отладки Jupyter в бэкенде. Следовательно, первым шагом будет установка этого ядра. На данный момент такая реализация возможна только с xeus-python
. Чтобы установить его, просто выполните:
Затем запустите Jupyter Lab. Найдите в боковом меню Extension Manager
и включите его, если он еще не запущен.
На боковой панели появится новая кнопка. Чтобы установить отладчик, просто перейдите на запущенную кнопку Extension Manager
и найдите расширение debugger
.
После установки Jupyter Lab попросит выполнить сборку, чтобы включить последние изменения. Нажмите «принять», и через несколько секунд вы уже будете готовы к работе.
Чтобы протестировать отладчик, мы создаем новый ноутбук xpython
и собираем простую функцию. Запускаем ее привычным образом и наблюдаем за результатом. Чтобы включить отладчик, нажмите соответствующую кнопку в правом верхнем углу окна.
Теперь можно снова запустить функцию. Однако на этот раз выполнение остановится на установленной нами точке останова, что позволит изучить состояние программы.
Отладка кодаПрограмма остановилась на точке останова. Открыв панель отладчика, мы увидим переменные, список точек останова, навигацию по стеку вызовов и исходный код.
Новый визуальный отладчик для Jupyter предлагает все ожидаемые от отладчика IDE функции. Он все еще находится в разработке, следовательно его функциональность будет дополняться. Некоторые из функций, которые разработчики планируют выпустить в 2020 году:
Jupyter Notebook — отличный инструмент для изучения кода и экспериментирования. Однако, чтобы создать готовую к работе библиотеку, разработчики ПО обычно обращаются к полноценной IDE, копируя работающие части.
Такой подход не только снижает эффективность, но и противоречит идее Jupyter — грамотному программированию. Кроме того, ноутбуки предоставляют среду для создания лучшей документации, включая графики, изображения и видео, а иногда и лучшие инструменты, такие как функцию автозаполнения.
nbdev и визуальный отладчик — два проекта, направленные на сокращение разрыва между ноутбуками и IDE. Мы узнали, что такое nbdev и как он воплощает грамотное программирование в реальность, а также познакомились с визуальным отладчиком для Jupyter.
Перевод статьи Dimitris Poulopoulos: Jupyter is now a full-fledged IDE
Комментарии