Introdução ao notebook iPython

1

Por favor, não considere isso uma duplicata. Eu vi um post semelhante e a solução recomendada não resolveu meu problema. Eu preciso de entrada porque não consigo encontrar uma solução em outro lugar e o iPython não parece ter um fórum de suporte.

Estou tentando usar o notebook iPython no Kubuntu 14.04, mas não consigo inicializá-lo. Eu encontrei este postar e tentei a solução recomendada de instalação de dependências . O sistema afirma que python-pip e python-dev já são a versão mais recente. Não há resposta para o essencial da construção.

Se alguém usar pip para instalar um pacote python, será que faz diferença qual interpretador Python é lançado? Resolvendo esse problema, descobri o Python 2.7.6 & 3.4.0 estão instalados no meu sistema. Faria diferença? Da minha leitura dos requisitos, o iPython deve funcionar em qualquer versão do Python.

Na pesquisa para encontrar uma solução, deparei com ipython notebook --notebook-dir='<path/to/notebooks>' . Eu defino a variável para um caminho no meu diretório pessoal. Isso não fez diferença. Se tentar iniciar inserindo ipython notebook , recebo os seguintes Tracebacks:

Traceback (most recent call last):
  File "/usr/local/bin/ipython", line 11, in <module>
    sys.exit(start_ipython())
  File "/usr/local/lib/python2.7/dist-packages/IPython/__init__.py", line 120, in start_ipython
    return launch_new_instance(argv=argv, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/IPython/config/application.py", line 573, in launch_instance
    app.initialize(argv)
  File "<string>", line 2, in initialize
  File "/usr/local/lib/python2.7/dist-packages/IPython/config/application.py", line 75, in catch_config_error
    return method(app, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/IPython/terminal/ipapp.py", line 321, in initialize
    super(TerminalIPythonApp, self).initialize(argv)
  File "<string>", line 2, in initialize
  File "/usr/local/lib/python2.7/dist-packages/IPython/config/application.py", line 75, in catch_config_error
    return method(app, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/IPython/core/application.py", line 369, in initialize
    self.parse_command_line(argv)
  File "/usr/local/lib/python2.7/dist-packages/IPython/terminal/ipapp.py", line 316, in parse_command_line
    return super(TerminalIPythonApp, self).parse_command_line(argv)
  File "<string>", line 2, in parse_command_line
  File "/usr/local/lib/python2.7/dist-packages/IPython/config/application.py", line 75, in catch_config_error
    return method(app, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/IPython/config/application.py", line 471, in parse_command_line
    return self.initialize_subcommand(subc, subargv)
  File "<string>", line 2, in initialize_subcommand
  File "/usr/local/lib/python2.7/dist-packages/IPython/config/application.py", line 75, in catch_config_error
    return method(app, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/IPython/config/application.py", line 402, in initialize_subcommand
    subapp = import_item(subapp)
  File "/usr/local/lib/python2.7/dist-packages/IPython/utils/importstring.py", line 42, in import_item
    module = __import__(package, fromlist=[obj])
  File "/usr/local/lib/python2.7/dist-packages/IPython/html/notebookapp.py", line 30, in <module>
    check_for_zmq('13', 'IPython.html')
  File "/usr/local/lib/python2.7/dist-packages/IPython/utils/zmqrelated.py", line 12, in check_for_zmq
    raise ImportError("%s requires pyzmq >= %s"%(required_by, minimum_version))
ImportError: IPython.html requires pyzmq >= 13

Perguntas adicionais

Após o conselho de Steve Barnes, não tenho certeza de que tudo está funcionando como deveria. Para o iPython funcionar, eu tive que criar o diretório para notebooks sob a raiz de todos os outros sites na minha máquina.

Inserindo ipython notebook em um prompt de comando, recebo a seguinte saída:

16:33:11 Fri Jul 31 - ~/www/ipython_notebooks
$> ipython notebook
[I 16:33:15.571 NotebookApp] Using MathJax from CDN: https://cdn.mathjax.org/mathjax/latest/MathJax.js
[I 16:33:15.588 NotebookApp] Serving notebooks from local directory: /home/daniel/www/ipython_notebooks
[I 16:33:15.588 NotebookApp] 0 active kernels 
[I 16:33:15.589 NotebookApp] The IPython Notebook is running at: http://localhost:8888/
[I 16:33:15.589 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 16:33:16.801 NotebookApp] 405 HEAD /tree (127.0.0.1) 5.74ms referer=None

No meu navegador, o URL é inesperado. Ele é exibido como

file:///var/tmp/kdecache-daniel/krun/6915_0_tree

e o conteúdo aparece como HTML sem CSS. Quaisquer links ou dropdowns não funcionam. Para que a página da Web funcione conforme o esperado, é necessário digitar o URL http://localhost:8888/notebooks/ explicitamente. A página renderizada a seguir é inesperada para o Jupyter e não para o iPython.

Eu gostaria de incluir capturas de tela, mas aparentemente não tenho reputação suficiente para fazê-lo. Eu sinto que há algo que estou perdendo. Alguém pode oferecer se eles tiveram um resultado semelhante e como consertá-lo?

    
por dwlamb 31.07.2015 / 20:32

1 resposta

0

A última linha diz qual é o seu problema:

ImportError: IPython.html requires pyzmq >= 13

Seu sistema não tem pyzmq ou uma versão antiga - tente:

sudo pip install -U pyzmq

O -U é o mesmo que --upgrade e solicitará a instalação da versão mais recente do pyzmq que seja compatível com sua versão do python.

Você pode ter que instalar algumas outras dependências para que isso funcione, como o pacote python-dev que corresponde à sua versão atual do python, que precisará ser instalado com apt-get install .

Pode haver outras dependências opcionais e opcionais do iPython e seu notebook para você atender, pois a maioria dos sudo pip install -U nome_do_componente fará o truque. Eu também sugeriria ler em python virtual-env

Mais algumas anotações

Quando o iPython estiver sendo executado no modo notebook, será necessário procurar o localhost: 8888http: // tree ou // localhost: 8888 / tree, conforme mostrado pela última linha na janela de comando, observe que / tree é um tipo de visualização não é um diretório real e quaisquer cadernos e subdiretórios no diretório em que você iniciou o iPython serão mostrados .

Você também pode ficar confuso ao ver que o servidor agora é chamado de jupyter porque a funcionalidade do notebook do iPython cresceu e agora está sendo mantida e desenvolvida como um separate project que suporta Python 2/3, Julia, R, Haskell, Ruby e muitos outros idiomas.

Um servidor pode abrir kernels executando qualquer um deles que você tenha instalado em sua máquina, assim como você pode misturar alguns deles em um único notebook usando os comandos magic.

    
por Steve Barnes 31.07.2015 / 20:44