Jupyter Notebook com Emacs

Matéria escrita pelo colaborador Guilherme Hathy.

Jupyter Notebook

Continuando o tema abordado pelo Professor Fernando Mayer no último post, neste abordaremos o uso do Jupyter, mais especificamente o Jupyter Notebook, com o Emacs.

Mas afinal, o que é um Jupyter Notebook?

Muitos dos alunos do curso de Estatística estão familiarizados com a utilização do RMarkdown para a elaboração de trabalhos acadêmicos. De forma bem simplificada, o Jupyter Notebook faz o mesmo trabalho, integrando código e texto, assim facilitando a escrita de textos científicos, pesquisas reproduzíveis, relatórios de dados, etc. O Jupyter é uma ferramenta muito poderosa, pois permite criar documentos utilizando várias linguagens de programação, como R, Julia e Python.

Instalando o Jupyter

Podemos instalar o Jupyter utilizando o próprio pip. Basta executar o comando abaixo no terminal do Linux.

Para abrir um Jupyter Notebook basta rodar o seguinte código no terminal.

Após a execução, o seu navegador padrão abrirá com uma tela semelhante a seguinte.

Para maiores informações de como utilizar o Jupyter, consulte a documentação oficial: http://jupyter.org/documentation.

Instalando o EIN – Emacs IPython Notebook

Para trabalhar com o Jupyter Notebook no Emacs utilizaremos o pacote Ein.

A principal motivação para rodar o Jupyter no Emacs é a utilização de atalhos e ferramentas do próprio Emacs. Eu, por exemplo, costumo utilizar muito o pacote multiple-cursors, que permite a edição de várias linhas do código simultaneamente.

A instalação do Ein deve ser feita através do MELPA, que é o procedimento padrão para se instalar qualquer pacote no Emacs. Para habilitar o MELPA (se ainda não estiver habilitado) veja esse link. Com o MELPA habilitado, execute:

para abrir a lista de pacotes disponíveis. Procure pelo Ein com

e aperte Enter para instalar automaticamente. Por fim, abra seu ~/.emacs e insira essas instruções para habilitar o Ein:

Após inserir salve com C-x C-s e reinicie o Emacs.

No Spacemacs, basta habilitar a layer ipython-notebook no arquivo ~/.spacemacs e reiniciar o programa. Dessa forma, o Ein já será instalado e configurado automaticamente.

Iniciando um Notebook no Emacs

Após a instalação do pacote Ein, podemos começar à utilizar o Jupyter Notebook integrado com o Emacs.

Para começar devemos iniciar um servidor do Jupyter no computador. Para isso abrimos o Emacs e executamos o comando M-x ein:jupyter-server-start. Em seguida devemos colocar o local no qual esta instalado o Jupyter Server Command: /usr/local/bin/jupyter (Pasta padrão no Ubuntu) e por último colocamos no mini-buffer o caminho para o diretório que queremos iniciar o Jupyter Notebook.

Se tudo ocorrer sem erro, o Emacs abrirá uma janela para a administração dos notebooks.

Para criar um novo Notebook basta clicar em New Notebook. Um arquivo com o nome Untitled.ipynb será criado no diretório em que o Jupyter está sendo executado.

Para renomear o Notebook basta usar o comando

Se já houver um arquivo do Jupyter Notebook (.ipynb) no seu sistema, basta clicar sobre ele para que abra para edição.

Principais Atalhos

Separei alguns dos principais atalhos para a utilização do pacote Ein. A lista completa pode ser acessada no link.

  • C-c C-c para executar a célula e permanecer nela.
  • M-RET executa a célula e vai para a próxima, caso não tenha, ele cria uma.
  • C-c C-a para inserir uma célula antes da célula na qual estamos.
  • M-up ou M-down para trocar a célula de posição.
  • Após criar uma nova célula, C-c C-u m faz ela virar uma célula markdown.
Share

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">