¿Cómo puedo compartir los cuadernos Jupyter con no programadores? [cerrado]

167

Estoy tratando de entender lo que puedo / no puedo hacer con Jupyter.

Tengo un servidor Jupyter ejecutándose en nuestro servidor interno, accesible a través de VPN y protegido con contraseña.

Soy el único que realmente está creando cuadernos, pero me gustaría que algunos cuadernos sean visibles para otros miembros del equipo de una manera de solo lectura. Idealmente, podría compartir una URL con ellos que marcarían cuando quieran ver el cuaderno con datos actualizados.

Vi opciones de exportación, pero no encuentro ninguna mención de "publicar" o "hacer públicos" portátiles locales en vivo. ¿Es esto imposible? ¿Es quizás una forma incorrecta de pensar cómo se debe usar Jupyter?

xav
fuente
55
Parece que puedes poner los .ipynbarchivos en GitHub: blog.jupyter.org/2015/05/07/rendering-notebooks-on-github
jonrsharpe
44
Pero para mantenerlo en privado, tendríamos que pagar las cuentas.
xav
¿Entonces no quieres que sean totalmente públicos? Si solo a los locales, ¿por qué no pueden acceder al servidor?
jonrsharpe
2
Lo siento si no estaba claro. Me gustaría servir los cuadernos en el servidor (solo el equipo puede verlos), pero si es posible, me gustaría evitar darles la contraseña de la instancia de Jupyter o cualquier otra forma de acceso con derechos de edición.
xav
44
tal vez simplemente pueda crear una esencia secreta ( gist.github.com ) "Las esencias secretas están ocultas de los motores de búsqueda pero son visibles para cualquier persona que proporcione la URL". uno incluso no tiene una cuenta de github. rápido.
tagoma

Respuestas:

78

La "mejor" forma de compartir un bloc de notas Jupyter es simplemente colocarlo en GitHub (y verlo directamente) o en algún otro enlace público y usar el visor de bloc de notas de Jupyter . Cuando la privacidad es más problemática, existen alternativas, pero ciertamente es más compleja; No hay una forma integrada de hacer esto solo en Jupyter, pero hay un par de opciones:

Aloja tu propio nbviewer

GitHub y Jupyter Notebook Veiwer usan la misma herramienta para renderizar .ipynbarchivos en HTML estático, esta herramienta es nbviewer .

Las instrucciones de instalación son más complejas de lo que estoy dispuesto a entrar aquí, pero si su empresa / equipo tiene un servidor compartido que no requiere acceso con contraseña, entonces podría alojar el nbviewer en ese servidor y dirigirlo a cargar desde su servidor acreditado . Esto probablemente requerirá una configuración más avanzada que la que encontrará en los documentos.

Configurar una secuencia de comandos de implementación

Si no necesita necesariamente actualizar HTML en vivo, entonces puede configurar un script en su servidor acreditado que simplemente usará las opciones de exportación integradas de Jupyter para crear los archivos HTML estáticos y luego enviarlos a un servidor más accesible al público.

Michael Leonard
fuente
También puede acceder a nbviewer directamente en nbviewer.jupyter.org y agregar allí su archivo
guhur
los Notebook Jupyter Visor rendirá cuadernos estáticas dentro de los GIST también, que nos evita de necesitar un acuerdo de recompra de pleno derecho GitHub.
Wayne
Nota "agregar allí su archivo" no incluye cargarlo con un diálogo web que le permite elegir el archivo localmente desde el sistema de archivos del navegador.
lucid_dreamer
29

Google ha hecho público recientemente su proyecto interno de colaboración ( enlace aquí ). Puede iniciar un bloc de notas de la misma manera que inicia una hoja de Google o un documento de Google, y luego simplemente compartir el bloc de notas o agregar colaboradores.

Por ahora, esta es la forma más fácil para mí.

Mapl
fuente
1
Me sorprendió descubrir lo intuitivo y fácil que era utilizar Colaboratory. Tenga en cuenta que puede compartir el enlace solo como vista, pero los visitantes pueden habilitar el modo "patio de recreo" para ejecutar bloques de código y ajustar parámetros. muy genial.
Timothy Lombard
Los atajos están todos rotos en colab.
mathtick
Puede comenzar aquí: Introducción a Google
Colab
24

La sugerencia de Michael de ejecutar su propia instancia de nbviewer es una buena que utilicé en el pasado con un servidor Enterprise Github.

Otra alternativa ligera es tener una celda al final de su computadora portátil que haga una llamada de shell a nbconvert para que se actualice automáticamente después de ejecutar todo:

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

EDITAR : Con Jupyter / IPython Big Split, probablemente querrás cambiar esto !jupyter nbconvert <notebook name>.ipynb --to htmlahora.

Cachondo
fuente
12

Depende de lo que intente hacer con su computadora portátil: ¿desea que el usuario pueda volver a calcular los resultados o simplemente jugar con ellos?

Cuaderno estático

NBViewer es una gran herramienta. Puedes usarlo directamente dentro de Jupyter . Github también tiene un render, por lo que puede vincular directamente su archivo (como https://github.com/my-name/my-repo/blob/master/mynotebook.ipynb )

Cuaderno vivo

Si desea que su usuario pueda volver a calcular algunas partes, también puede usar MyBinder . Toma tiempo iniciar su computadora portátil, pero el resultado lo vale.

Como dijo @Mapl, Google puede alojar su computadora portátil con Colab . Una buena característica es calcular sus celdas en una GPU.

Guhur
fuente
1
MyBinder hará una insignia que puede colocar en su repositorio para que los usuarios lancen fácilmente un cuaderno activo (en vivo ), vea aquí , para un ejemplo básico. Incluso puede especificar que se inicie directamente en una determinada página de cuaderno ACTIVO y no en el tablero de Jupyter ingresando una ruta a un archivo de cuaderno antes de presionar la flecha hacia abajo al lado del botón de inicio para obtener su insignia.
Wayne
7

Una excelente manera de hacer esto en WordPress consiste en los siguientes pasos:

Paso 1: abra su computadora portátil Jupyter en un editor de texto y copie el contenido que podría verse así: su archivo .ipynb puede verse así cuando se abre en un editor de texto

Paso 2: Ctrl + A y Ctrl + C este contenido. Luego Ctrl + V esto a un GitHub Gist que debe crear.

Paso 3: Cree una esencia pública e incruste la esencia como siempre incrusta las esencias en WordPress, a saber, vaya al editor HTML y agregue así:

[gist gist_url]

De hecho, he implementado esto en mi blog. Puedes encontrar la publicación aquí

Anirudh
fuente
4

Una forma más de lograr este objetivo sería usar JupyterHub .

Con JupyterHub puede crear un Hub multiusuario que genera, gestiona y representa múltiples instancias del servidor portátil Jupyter de un solo usuario. Debido a su flexibilidad y opciones de personalización, JupyterHub se puede usar para entregar cuadernos a una clase de estudiantes, un grupo corporativo de ciencias de datos o un grupo de investigación científica.

ingrese la descripción de la imagen aquí

Denis Rasulev
fuente
2
Hasta ahora, jupyterhub solo es útil para dar acceso a muchos usuarios para usar jupyter. Se está trabajando en compartir cuadernos con ShareHub, pero jupyterhub no ayuda.
Craig
@ Craig, ¿tuviste la oportunidad de probarlo? ¿Qué es ShareHub? ¿Qué te hizo pensar que JupyterHub no ayuda en este caso? ¿Pueden ustedes, pls, apoyar su comentario con algún argumento para que otros puedan aprender de él?
Denis Rasulev
@Craig I secunda la solicitud de "Denis Rasulev". ShareHub no devuelve ningún resultado significativo, y el resto de su comentario es críptico.
lucid_dreamer 05 de
@Denis, ¿cómo se compara esta solución con mybinder.org ? ¿Algún comentario?
lucid_dreamer 05 de
@ user1712447, la idea se ve muy bien, pero no tuve suerte con los ejemplos de error "sin espacio" todo el tiempo. Así que no puedo decirte nada. Además, discutirlo aquí, en mi humilde opinión, parece un poco fuera de tema.
Denis Rasulev