Como posso compartilhar os notebooks Jupyter com não programadores? [fechadas]

167

Estou tentando entender o que posso ou não fazer com o Jupyter.

Eu tenho um servidor Jupyter em execução em nosso servidor interno, acessível via VPN e protegido por senha.

Sou o único que está realmente criando blocos de anotações, mas gostaria de tornar alguns blocos visíveis para outros membros da equipe de maneira somente leitura. Idealmente, eu poderia simplesmente compartilhar com eles uma URL para a qual marcariam quando quiserem ver o notebook com dados atualizados.

Vi opções de exportação, mas não consigo encontrar nenhuma menção a "publicar" ou "tornar público" cadernos ao vivo locais. Isso é impossível? Talvez seja apenas uma maneira errada de pensar sobre como o Jupyter deve ser usado?

xav
fonte
5
Parece que você pode simplesmente colocar os .ipynbarquivos no GitHub: blog.jupyter.org/2015/05/07/rendering-notebooks-on-github
jonrsharpe
4
Mas, para mantê-lo privado, teríamos que pagar por contas.
xav
Então você não quer que eles sejam totalmente públicos? Se apenas para os locais, por que eles não podem acessar o servidor?
precisa saber é o seguinte
2
Desculpe se não estava claro. Gostaria de servir os blocos de anotações no servidor (apenas a equipe pode vê-lo), mas se possível, gostaria de evitar fornecer a senha da instância do Jupyter ou qualquer outra forma de acesso com direitos de edição.
xav
4
talvez você possa simplesmente criar uma essência secreta ( gist.github.com ) "As essência secretas estão ocultas nos mecanismos de pesquisa, mas são visíveis a qualquer pessoa que você fornecer o URL". um deles ainda não tem uma conta no github. velozes.
Tag6 /

Respostas:

78

A melhor "maneira" de compartilhar um notebook Jupyter é simplesmente colocá-lo no GitHub (e visualizá-lo diretamente) ou em algum outro link público e usar o Jupyter Notebook Viewer . Quando a privacidade é mais um problema, existem alternativas, mas certamente é mais complexa; não há uma maneira integrada de fazer isso apenas no Jupyter, mas há algumas opções:

Hospede seu próprio nbviewer

O GitHub e o Jupyter Notebook Veiwer usam a mesma ferramenta para renderizar .ipynbarquivos em HTML estático; essa ferramenta é o nbviewer .

As instruções de instalação são mais complexas do que eu gostaria de abordar aqui, mas se sua empresa / equipe tiver um servidor compartilhado que não exija acesso por senha, você poderá hospedar o nbviewer nesse servidor e direcioná-lo para o carregamento do seu servidor credenciado . Provavelmente, isso exigirá uma configuração mais avançada do que você encontrará nos documentos.

Configurar um script de implantação

Se você não precisar necessariamente atualizar o HTML ao vivo , poderá configurar um script no servidor credenciado que simplesmente usará as opções de exportação internas do Jupyter para criar os arquivos HTML estáticos e enviá-los para um servidor mais acessível ao público.

Michael Leonard
fonte
Você também pode acessar o nbviewer diretamente em nbviewer.jupyter.org e adicionar seu arquivo
guhur
O Jupyter Notebook Viewer também renderiza notebooks estáticos dentro do essencial, poupando você da necessidade de um repositório completo do GitHub.
Wayne
Nota "adicione lá seu arquivo" não inclui enviá- lo com uma caixa de diálogo da Web, permitindo que você escolha o arquivo localmente no sistema de arquivos do navegador.
Lucid_dreamer 3/0318
29

O Google tornou público recentemente seu projeto interno de colaboração ( link aqui ). Você pode iniciar um bloco de anotações da mesma maneira que inicia uma planilha do Google ou o Google Doc e, em seguida, simplesmente compartilhar o bloco de anotações ou adicionar colaboradores.

Por enquanto, esta é a maneira mais fácil para mim.

Mapl
fonte
1
Fiquei surpreso ao descobrir como o Colaboratory era intuitivo e fácil de usar. Observe que você pode compartilhar o link apenas como visualização, mas os visitantes podem ativar o modo "playground" para executar blocos de código e ajustar parâmetros. muito legal.
Timothy Lombard
Os atalhos estão todos quebrados na coluna.
mathtick
Você pode começar aqui: Introdução ao Google
Colab
24

A sugestão de Michael de executar sua própria instância do nbviewer é uma boa que eu usei no passado com um servidor Enterprise Github.

Outra alternativa leve é ​​ter uma célula no final do seu notebook que faça uma chamada de shell para o nbconvert, para que seja atualizada automaticamente depois de executar a coisa toda:

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

EDIT : Com o Big Split do Jupyter / IPython, você provavelmente vai querer mudar isso !jupyter nbconvert <notebook name>.ipynb --to htmlagora.

Randy
fonte
12

Depende do que você pretende fazer com o seu Notebook: deseja que o usuário possa recalcular os resultados ou apenas brincar com eles?

Caderno estático

NBViewer é uma ótima ferramenta. Você pode usá-lo diretamente no Jupyter . O Github também tem uma renderização, para que você possa vincular seu arquivo diretamente (como https://github.com/my-name/my-repo/blob/master/mynotebook.ipynb )

Caderno vivo

Se você deseja que seu usuário possa recalcular algumas partes, também pode usar o MyBinder . Leva algum tempo para iniciar o seu notebook, mas o resultado vale a pena.

Como dito pelo @Mapl, o Google pode hospedar seu notebook com a Colab . Um recurso interessante é calcular suas células em uma GPU.

guhur
fonte
1
O MyBinder fará um crachá que você pode colocar no seu repositório para que os usuários iniciem facilmente um notebook ativo ( ao vivo ), veja aqui , para um exemplo básico. Você pode até especificar iniciar diretamente em uma determinada página do bloco de anotações ATIVO , e não no painel do Jupyter, inserindo o caminho para um arquivo de bloco de anotações antes de pressionar a seta ao lado do botão de inicialização para obter seu emblema.
Wayne
7

Uma ótima maneira de fazer isso no WordPress consiste nas seguintes etapas:

Etapa 1: Abra o bloco de anotações Jupyter em um editor de texto e copie o conteúdo com a seguinte aparência: Seu arquivo .ipynb pode ser assim quando aberto em um editor de texto

Etapa 2: Ctrl + A e Ctrl + C este conteúdo. Em seguida, pressione Ctrl + V e a GistHub Gist que você deve criar.

Etapa 3: crie uma essência pública e incorpore a essência como você sempre incorpora no WordPress, vá para o editor de HTML e adicione assim:

[gist gist_url]

Na verdade, eu implementei isso no meu blog. Você pode encontrar o post aqui

Anirudh
fonte
4

Mais uma maneira de atingir esse objetivo seria usar o JupyterHub .

Com o JupyterHub, você pode criar um hub multiusuário que gera, gerencia e proxies de várias instâncias do servidor notebook Jupyter de usuário único. Devido às suas opções de flexibilidade e personalização, o JupyterHub pode ser usado para servir notebooks a uma turma de estudantes, a um grupo corporativo de ciência de dados ou a um grupo de pesquisa científica.

insira a descrição da imagem aqui

Denis Rasulev
fonte
2
Até agora, o jupyterhub é útil apenas para dar acesso a muitos usuários para usar o jupyter. O compartilhamento de blocos de anotações está sendo trabalhado com o ShareHub, mas o jupyterhub não ajuda.
Craig
@ Craig, você teve a chance de experimentar? O que é o ShareHub? O que fez você pensar que o JupyterHub não ajuda nesse caso? Por favor, você pode apoiar seu comentário com argumentos para que outros possam aprender com ele?
Denis Rasulev 01/06
@ Craig Eu segundo pedido de "Denis Rasulev". O ShareHub não retorna nenhum resultado significativo e o restante do seu comentário é enigmático.
5137 lucid_dreamer #
@ Denis, como essa solução se compara ao mybinder.org ? Algum comentário?
5137 lucid_dreamer #
@ user1712447, a ideia parece ótima, mas não tive sorte com exemplos recebendo o erro "sem espaço" o tempo todo. Então não posso te dizer nada. Ao lado, discuti-lo aqui, imho, parece um pouco fora de tópico.
Denis Rasulev