Подтвердить что ты не робот

Jupyter: встроенные интерактивные виджеты

Согласно блогу Jupyter здесь, теперь можно встроить интерактивные виджеты в статическую веб-страницу:

Теперь интерактивные виджеты теперь могут быть встроены в статические веб-страницы или блоги, вставив фрагмент html, содержащий сериализованное состояние виджетов. Это также работает с пользовательскими библиотеками виджетов. См. http://jupyter.org/embed-jupyter-widgets.html.

Когда я открываю пример выше, в firefox или chrome, я получаю интерактивные виджеты в порядке!

Однако, если я создаю новый ноутбук с тем же битом кода python, сохраните ноутбук как html, а затем скопируйте вложенный внедряемый фрагмент HTML, чтобы отображать интерактивные виджеты, он не работает. В лучшем случае я получаю изображение состояния виджета, но ничего интерактивного.

Кто-нибудь сумел реплицировать HTML-страницу с помощью интерактивных виджетов? Есть что-то, чего я не хватает?

4b9b3361

Ответ 1

Мы сделали Kyso именно для этого. Вы можете встроить блокнот Jupyter в веб-сайт, используя kyso.io, и, пока виджеты поддерживаются панелью BokehJS, блокнот будет интерактивным. Вот пример

PS. (отказ от ответственности - я основатель kyso)

Ответ 2

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

Для встраивания интерактивных виджетов вам нужен бэкэнд, но есть проект под названием MyBinder, который можно бесплатно использовать в качестве бэкэнда в облаке. Это послужило основой для библиотеки под названием NBinteract, которая может конвертировать любой блокнот с интерактивными виджетами в одну HTML-страницу.

Эти HTML файлы загружают скрипт из cdn и самостоятельно управляют всем взаимодействием с MyBinder.

На их веб-сайте есть несколько примеров, и я также опубликовал пост в своем блоге, где использовал эту технологию вместе с Dockerfile, ffmpeg, matplotlib, анимацией и интерактивными виджетами. Поэтому я считаю, что этот подход достаточно надежный и гибкий.

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