Jak mogę udostępniać notatniki Jupyter osobom nie będącym programistami? [Zamknięte]

167

Próbuję ogarnąć głowę, co mogę / czego nie mogę zrobić z Jupyter.

Mam serwer Jupyter działający na naszym serwerze wewnętrznym, dostępny przez VPN i chroniony hasłem.

Tylko ja faktycznie tworzę notesy, ale chciałbym, aby niektóre z nich były widoczne dla innych członków zespołu w trybie tylko do odczytu. W idealnym przypadku mógłbym po prostu udostępnić im adres URL, do którego dodaliby zakładkę, gdy chcą zobaczyć notatnik z odświeżonymi danymi.

Widziałem opcje eksportu, ale nie mogę znaleźć żadnej wzmianki o „publikowaniu” lub „udostępnianiu” lokalnych notatników na żywo. Czy to niemożliwe? Czy to może po prostu zły sposób myślenia o tym, jak należy używać Jupyter?

xav
źródło
5
Wygląda na to, że możesz po prostu umieścić .ipynbpliki na GitHub: blog.jupyter.org/2015/05/07/rendering-notebooks-on-github
jonrsharpe
4
Ale żeby zachować prywatność, musielibyśmy płacić za konta.
xav
Więc nie chcesz, aby były one całkowicie publiczne? Jeśli tylko mieszkańcom, dlaczego nie mogą uzyskać dostępu do serwera?
jonrsharpe
2
Przepraszam, jeśli nie było jasne. Chciałbym udostępniać notatniki na serwerze (tylko zespół może to zobaczyć), ale jeśli to możliwe, nie chciałbym podawać im hasła do instancji Jupyter ani żadnego innego sposobu dostępu z uprawnieniami do edycji.
xav
4
może możesz po prostu utworzyć tajną treść ( gist.github.com ) „Tajne treści są ukryte dla wyszukiwarek, ale widoczne dla każdego, kto podasz adres URL”. nawet nie ma konta na githubie. szybki.
tagoma

Odpowiedzi:

78

„Najlepszym” sposobem udostępniania notatnika Jupyter jest po prostu umieszczenie go w serwisie GitHub (i bezpośrednie wyświetlenie) lub innego publicznego łącza i użycie przeglądarki Jupyter Notebook Viewer . Kiedy prywatność jest większym problemem, istnieją alternatywy, ale z pewnością są one bardziej złożone; nie ma wbudowanego sposobu, aby to zrobić w samym Jupyter, ale kilka opcji to:

Hostuj swój własny nbviewer

GitHub i Jupyter Notebook Veiwer używają tego samego narzędzia do renderowania .ipynbplików w statycznym formacie HTML, tym narzędziem jest nbviewer .

Instrukcje instalacji są bardziej złożone, niż chciałbym tutaj wprowadzić, ale jeśli Twoja firma / zespół ma serwer współdzielony, który nie wymaga dostępu do hasła, możesz hostować nbviewer na tym serwerze i skierować go do ładowania z twojego poświadczonego serwera . Będzie to prawdopodobnie wymagało bardziej zaawansowanej konfiguracji niż ta, którą znajdziesz w dokumentacji.

Skonfiguruj skrypt wdrażania

Jeśli niekoniecznie potrzebujesz aktualizowanego na żywo HTML, możesz skonfigurować skrypt na swoim poświadczonym serwerze, który po prostu użyje wbudowanych opcji eksportu Jupyter do tworzenia statycznych plików HTML, a następnie wyśle ​​je na bardziej publicznie dostępny serwer.

Michael Leonard
źródło
Możesz także uzyskać dostęp do nbviewer bezpośrednio na nbviewer.jupyter.org i dodać tam swój plik
guhur
Jupyter Notebook Viewer odda notebooki statyczne wewnątrz GIST też sparing cię od konieczności pełnoprawnym GitHub repo.
Wayne
Uwaga „dodaj tam swój plik” nie obejmuje przesłania go za pomocą okna dialogowego sieci WWW, które umożliwia lokalne pobranie pliku z systemu plików przeglądarki.
lucid_dreamer
29

Firma Google niedawno opublikowała swój wewnętrzny projekt współpracy ( łącze tutaj ). Możesz uruchomić notatnik w taki sam sposób, jak uruchomić Arkusz Google lub Dokument Google, a następnie po prostu udostępnić notatnik lub dodać współpracowników.

Na razie jest to dla mnie najłatwiejsza droga.

Mapl
źródło
1
Zaskoczyło mnie, jak intuicyjne i łatwe jest korzystanie z Colaboratory. Pamiętaj, że możesz udostępniać łącze tylko do wyświetlania, ale odwiedzający mogą włączyć tryb „placu zabaw”, aby uruchamiać bloki kodu i dostosowywać parametry. bardzo fajny.
Timothy Lombard
Wszystkie skróty są zepsute w colabie.
mathtick
Możesz zacząć tutaj: Wprowadzenie do Google Colab
cglacet
24

Sugestia Michaela dotycząca uruchomienia własnej instancji nbviewer jest dobra, z którego korzystałem w przeszłości na serwerze Enterprise Github.

Inną lekką alternatywą jest posiadanie komórki na końcu notebooka, która wykonuje wywołanie powłoki w celu nbconvert, dzięki czemu jest automatycznie odświeżana po uruchomieniu całości:

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

EDYCJA : Dzięki Big Split Jupyter / IPython prawdopodobnie będziesz chciał to zmienić !jupyter nbconvert <notebook name>.ipynb --to htmlteraz.

Niespokojny
źródło
12

To zależy od tego, co zamierzasz zrobić ze swoim notebookiem: czy chcesz, aby użytkownik mógł przeliczyć wyniki, czy po prostu się z nimi bawić?

Notatnik statyczny

NBViewer to świetne narzędzie. Możesz go użyć bezpośrednio w Jupyter . Github ma również renderowanie, więc możesz bezpośrednio połączyć swój plik (na przykład https://github.com/my-name/my-repo/blob/master/mynotebook.ipynb )

Żywy notatnik

Jeśli chcesz, aby Twój użytkownik mógł ponownie obliczyć niektóre części, możesz również użyć MyBinder . Uruchomienie notebooka zajmuje trochę czasu, ale wynik jest tego wart.

Jak powiedział @Mapl, Google może hostować Twój notatnik w Colab . Fajną funkcją jest obliczanie komórek za pomocą GPU.

guhur
źródło
1
MyBinder utworzy znaczek, który możesz umieścić w swoim repozytorium, aby użytkownicy mogli łatwo uruchomić aktywny (na żywo ) notatnik, zobacz tutaj , aby uzyskać podstawowy przykład. Możesz nawet określić uruchamianie bezpośrednio na określonej stronie notatnika ACTIVE, a nie na pulpicie nawigacyjnym Jupyter, wprowadzając ścieżkę do pliku notatnika przed naciśnięciem strzałki w dół obok przycisku uruchamiania, aby uzyskać odznakę.
Wayne
7

Świetny sposób na zrobienie tego w WordPress składa się z następujących kroków:

Krok 1: Otwórz swój notatnik Jupyter w edytorze tekstu i skopiuj zawartość, która może wyglądać następująco: Twój plik .ipynb może wyglądać tak po otwarciu w edytorze tekstu

Krok 2: Ctrl + A i Ctrl + C ta zawartość. Następnie Ctrl + V to do GitHub Gist, który powinieneś utworzyć.

Krok 3: Stwórz publiczną treść i umieść ją tak, jak zawsze osadzasz streszczenia w WordPress, a mianowicie przejdź do edytora HTML i dodaj w ten sposób:

[gist gist_url]

Właściwie zaimplementowałem to na swoim blogu. Post można znaleźć tutaj

Anirudh
źródło
4

Jeszcze jednym sposobem osiągnięcia tego celu byłoby użycie JupyterHub .

Dzięki JupyterHub możesz utworzyć centrum dla wielu użytkowników, które tworzy, zarządza i udostępnia wiele instancji serwera notebooków Jupyter dla jednego użytkownika. Ze względu na swoją elastyczność i opcje dostosowywania JupyterHub może służyć do udostępniania notebooków klasie studentów, korporacyjnej grupie zajmującej się nauką danych lub grupie naukowej.

wprowadź opis obrazu tutaj

Denis Rasulev
źródło
2
Jak dotąd jupyterhub jest przydatny tylko do udostępniania wielu użytkownikom jupyter. W ShareHub trwają prace nad udostępnianiem notebooków, ale jupyterhub nie pomaga.
Craig
@Craig, czy miałeś okazję tego spróbować? Co to jest ShareHub? Co sprawiło, że pomyślałeś, że JupyterHub nie pomaga w tym przypadku? Czy możecie poprzeć swój komentarz jakimikolwiek argumentami, aby inni mogli się z niego uczyć?
Denis Rasulev
@Craig I odpowiadam na prośbę "Denisa Rasuleva". ShareHub nie zwraca żadnych znaczących wyników, a reszta Twojego komentarza jest zagadkowa.
lucid_dreamer
@Denis Jak wypada to rozwiązanie w porównaniu z mybinder.org ? Jakieś uwagi?
lucid_dreamer
@ user1712447, pomysł wygląda świetnie, ale nie miałem szczęścia z przykładami, które otrzymywały błąd „brak spacji” przez cały czas. Więc nie mogę ci nic powiedzieć. Poza tym, omawianie tego tutaj, imho, wygląda trochę poza tematem.
Denis Rasulev