Действительно путают с Jupyter ноутбук, Лаборатория, расширения и ipywidgets
Я хочу создать интерактивное приложение для ноутбука JupyterLab, и мне нужно создать ряд пользовательских виджетов. Поэтому я начал изучать этот вопрос, и чем больше я выгляжу, тем больше запутываюсь. Чтобы сделать вещи простыми, я задам кучу простых вопросов:
- одним из наиболее распространенных способов использования виджетов в ноутбуках Jupyter является использование библиотеки ipywidgets. Правильно?
- В отличие от классического ноутбука, ноутбук JupyterLab не может отображать JavaScript непосредственно. В результате учебники по созданию пользовательских виджетов в документах ipywidgets невозможно запустить на JupyterLab. Правильно?
- Если кто-то хочет запустить JavaScript на ноутбуке JupyterLab, ей или ему придется сделать это через расширение. В случае ipywidgets необходимо будет установить @jupyter-widgets / JupyterLab-manager. Правильно?
- Если вы хотите написать пользовательский виджет с помощью библиотеки ipywidgets, есть два проекта GitHub, которые можно использовать как отправная точка: виджет-cookiecutter и виджет-ts-cookiecutter. Насколько я понимаю, первый основан на JavaScript, а второй-на TypeScript. Кроме того, первый, по-видимому, неактивен для некоторого типа, в то время как второй более активен. Команда JupyterWidgets планирует сосредоточиться на TypeScript? За кем мне следовать?
- проекты cookiecutter на самом деле не имеют документации. Я действительно смущен и изо всех сил пытаюсь понять их код. Конечно, я могу скопировать-вставить и начать возиться, пока я не выясню, как все это работает и что такое "крючки" или "точки входа" в коде, но я был бы очень признателен, если бы кто-то мог дать мне некоторые дополнительные указатели.
- является ли JupyterWidgets "официальным" проектом проекта Jupyter? Учитывая очень небольшое количество участников проекта, я задаюсь вопросом, насколько безопасно основывать свою работу на ipywidgets. Имейте в виду, что проект "DeclarativeWidgets" уже давно заброшен тому назад.
- есть ли другие библиотеки, которые реализуют больше виджетов, чем те, которые найдены в ipywidgets, а также работают на JupyterLab?
- Я хочу создать веб-приложение для обработки данных на стороне сервера. Моя первоначальная цель состояла в том, чтобы создать приложение/службу, которая не ожидает от пользователя никакого кодирования и выполняет все с помощью виджетов html/JavaScript. Это может быть реализовано с использованием углового / реактивного интерфейса и задней части Python/Django/Flask. Однако позже я понял, что есть случаи, когда пользователь может захотеть выполнить дополнительную пользовательскую/произвольную обработку на сервере. Вот почему я подумал о JupyterLab. Интересно, было бы лучше, и если можно просто создать, например, обычный угловой/Python-шрифт/back-end, и как-то обернуть это в расширение JupyterLab, которое предоставит механизм для доступа к данным из этого приложения/сервиса и принесет его в ноутбук для дальнейшей обработки.
спасибо заранее
2 ответов
В общем, вопрос stackoverflow должен попытаться задать только один вопрос в то время. Тем не менее, я постараюсь ответить на вопросы как можно лучше:
- ipywidgets является основным способом, да. Это то, что люди имеют в виду, когда говорят о виджетах ноутбуков.
- существует проблема отслеживания general JS в JupyterLab на репо jupyterlab.
-
@jupyter-widgets/jupyterlab-manager
Это виджеты для jupyterlab, да, но вам все равно понадобится код python в ipywidgets. Видеть http://ipywidgets.readthedocs.io/en/stable/user_install.html для деталей. - хотя это правда, что один JS и другой TS, TS one также имеет все колокола и свистки. Поэтому он также является более сложным. JS one более голый и, следовательно, может быть лучше для понимания самых важных бит.
- Я согласен, что оба могли бы сделать с лучшей документации! Я давно собирался это сделать. Лучший способ добиться этого - вероятно, чтобы открыть проблемы с конкретными вопросами по соответствующим репозиториям и предложить объяснение в README или аналогичном. Таким образом, вы можете гарантировать, что ваши болевые точки будут устранены.
- учитывая большую пользовательскую базу виджетов, я бы счел это безопасным. Хотя фактор автобуса не очень высок, люди, как правило, повышаются, если есть падение в сопровождающих.
- да, но использование виджетов для jupyterlab по-прежнему немного высокое обслуживание как для разработчиков, так и пользователи.
- то, что вы, возможно, захотите изучить, это
Comms
(http://jupyter-notebook.readthedocs.io/en/stable/comms.html), который является то, что виджеты используют под капотом для его синхронизации. Это более низкий уровень, поэтому вам придется судить, какой из них наиболее подходит для вас.
прежде всего, помните, что JupyterLab еще не стабилен, а внутренний API все еще немного меняется. Большая часть вашего разочарования пытается найти информацию о проекте, который меняется каждую неделю (должен стабилизироваться в начале 2018 года для справки).
Это приводит к минимальным усилиям написания документации и примера для пользователей, так как в любом случае документы будут неправильными через неделю. Так что ваша растерянность и отсутствие активности пока нормальны.
После Лаборатории стабилизируется, и команда IPywidget начнет переносить все, что вы должны увидеть улучшение.