Как я могу поделиться ноутбуками Jupyter с непрограммистами? [закрыто]

167

Я пытаюсь обернуть голову вокруг того, что я могу / не могу сделать с Jupyter.

У меня на внутреннем сервере работает сервер Jupyter, доступный через VPN и защищенный паролем.

Я единственный, кто на самом деле создает блокноты, но я бы хотел, чтобы некоторые блокноты были видны другим членам команды только для чтения. В идеале я мог бы просто поделиться с ними URL-адресом, который они бы добавили в закладки, когда захотят увидеть записную книжку с обновленными данными.

Я видел варианты экспорта, но не могу найти упоминаний об «публикации» или «обнародовании» локальных записных книжек. Это невозможно? Может быть, это просто неправильный способ думать о том, как следует использовать Jupyter?

XAV
источник
5
Похоже, что вы можете просто положить .ipynbфайлы на GitHub: blog.jupyter.org/2015/05/07/rendering-notebooks-on-github
jonrsharpe
4
Но чтобы сохранить это в тайне, нам пришлось бы платить за счета.
xav
Так ты не хочешь, чтобы они были полностью публичными? Если только для местных жителей, почему они не могут получить доступ к серверу?
Джоншарп
2
Извините, если не было понятно. Я хотел бы предоставить записные книжки на сервере (это может увидеть только команда), но, если возможно, я бы не хотел давать им пароль экземпляра Jupyter или любой другой способ доступа с правами редактирования.
xav
4
возможно, вы можете просто создать секретную суть ( gist.github.com ) «Секретные суть скрыты от поисковых систем, но видны всем, кому вы дадите URL». один даже не имеет учетной записи GitHub. быстро.
тагома

Ответы:

78

«Лучший» способ поделиться записной книжкой Jupyter - это просто разместить ее на GitHub (и просмотреть ее напрямую) или какой-либо другой общедоступной ссылке и использовать Jupyter Notebook Viewer . Когда конфиденциальность более важна, то есть альтернативы, но она, безусловно, более сложна; в Jupyter нет встроенного способа сделать это, но есть несколько вариантов:

Разместите свой собственный nbviewer

GitHub и Jupyter Notebook Veiwer используют один и тот же инструмент для рендеринга .ipynbфайлов в статический HTML, этот инструмент - nbviewer .

Инструкции по установке более сложны, чем я хочу здесь, но если у вашей компании / команды есть общий сервер, который не требует доступа к паролю, тогда вы можете разместить на этом сервере nbviewer и направить его для загрузки с вашего сервера с учетными данными. , Это, вероятно, потребует более сложной конфигурации, чем вы найдете в документации.

Настройте сценарий развертывания

Если вам необязательно обновлять HTML в режиме реального времени, вы можете настроить скрипт на своем сервере с учетными данными, который будет просто использовать встроенные параметры экспорта Jupyter для создания статических файлов HTML, а затем отправлять их на более общедоступный сервер.

Майкл Леонард
источник
Вы также можете получить доступ к nbviewer непосредственно на nbviewer.jupyter.org и добавить туда свой файл
guhur
Jupyter Notebook Телезритель будет оказывать статические ноутбуки в г тоже, избавляя вас от необходимости полноценного GitHub репо.
Уэйн
Примечание «добавить туда свой файл» не включает загрузку его с помощью веб-диалога, позволяющего выбрать файл локально из файловой системы браузера.
lucid_dreamer
29

Google недавно обнародовал свой внутренний коллаборационный проект ( ссылка здесь ). Вы можете запустить блокнот так же, как запустить Google Sheet или Google Doc, а затем просто поделиться блокнотом или добавить соавторов.

На данный момент это самый простой способ для меня.

MAPL
источник
1
Я был удивлен, обнаружив, насколько интуитивно понятна и проста в использовании Лаборатория. Обратите внимание, что вы можете поделиться ссылкой только для просмотра, но посетители могут включить режим «площадка» для запуска блоков кода и настройки параметров. очень круто.
Тимоти Ломбард
Все ярлыки разбиты в колабе.
математика
Вы можете начать здесь: введение Google colab
cglacet
24

Предложение Майкла о запуске вашего собственного экземпляра nbviewer было хорошим, которое я использовал в прошлом с сервером Enterprise Github.

Другая легкая альтернатива - иметь в конце ноутбука ячейку, которая выполняет оболочку для вызова nbconvert, чтобы она автоматически обновлялась после выполнения всего этого:

!ipython nbconvert <notebook name>.ipynb --to html

РЕДАКТИРОВАТЬ : С Big Split Jupyter / IPython вы, вероятно, захотите изменить это !jupyter nbconvert <notebook name>.ipynb --to htmlсейчас.

похотливый
источник
12

Это зависит от того, что вы собираетесь делать со своим ноутбуком: хотите ли вы, чтобы пользователь мог пересчитать результаты или просто поиграть с ними?

Статическая тетрадь

NBViewer - отличный инструмент. Вы можете напрямую использовать его внутри Jupyter . Github также имеет рендер, так что вы можете напрямую связать свой файл (например, https://github.com/my-name/my-repo/blob/master/mynotebook.ipynb )

Живой блокнот

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

Как сказал @Mapl, Google может разместить ваш ноутбук с Colab . Приятной особенностью является вычисление ваших ячеек с помощью графического процессора.

GUHUR
источник
1
MyBinder создаст значок, который вы можете разместить в своем репо, чтобы пользователи могли легко запускать активную ( живую ) записную книжку, базовый пример см. Здесь . Вы даже можете указать запуск непосредственно на определенной странице блокнота ACTIVE, а не на панели мониторинга Jupyter, указав путь к файлу блокнота, прежде чем нажать стрелку вниз рядом с кнопкой запуска, чтобы получить значок.
Уэйн
7

Отличный способ сделать это на WordPress состоит из следующих шагов:

Шаг 1: Откройте записную книжку Jupyter в текстовом редакторе и скопируйте содержимое, которое может выглядеть так: Ваш файл .ipynb может выглядеть так при открытии в текстовом редакторе.

Шаг 2: Ctrl + A и Ctrl + C это содержимое. Затем Ctrl + V это к GitHub Gist, который вы должны создать.

Шаг 3. Создайте общедоступную суть и вставьте ее, как вы всегда встраиваете гистограммы в WordPress, а именно, перейдите в редактор HTML и добавьте так:

[gist gist_url]

Я фактически реализовал это в своем блоге. Вы можете найти пост здесь

Anirudh
источник
4

Еще одним способом достижения этой цели было бы использование JupyterHub .

С помощью JupyterHub вы можете создать многопользовательский концентратор, который порождает, управляет несколькими прокси-серверами Jupyter и управляет ими. Благодаря своей гибкости и возможностям настройки JupyterHub можно использовать для подачи записных книжек студентам, корпоративной группе по изучению данных или научно-исследовательской группе.

введите описание изображения здесь

Денис Расулев
источник
2
Пока jupyterhub полезен только для предоставления многим пользователям доступа к использованию jupyter. Совместное использование записных книжек работает с ShareHub, но jupyterhub не помогает.
Крейг
@Craig, у тебя была возможность попробовать? Что такое ShareHub? Что заставило вас думать, что JupyterHub не помогает в этом случае? Можете ли вы, пожалуйста, поддержать свой комментарий какими-либо аргументами, чтобы другие могли извлечь из него пользу?
Денис Расулев
@Creig Я второй запрос "Денис Расулев". ShareHub не возвращает никаких значимых результатов, а остальная часть вашего комментария загадочна.
lucid_dreamer
@Denis, как это решение сравнивается с mybinder.org ? Любые комментарии?
lucid_dreamer
@ user1712447, идея выглядит великолепно, но мне не повезло с примерами, постоянно получающими ошибку «без пробелов». Так что ничего не могу вам сказать. Кроме того, обсуждение этого вопроса, imho, выглядит немного не по теме.
Денис Расулев