Emacs EIN vs IPython shell

10

Estoy tratando de hacer que EIN funcione dentro de Emacs, pero en este momento (con IPython 2) parece que no es posible. Estos errores surgen:

REQUEST [error] Error from parser ein:json-read: (json-readtable-error)
ein: [error] Error (parse-error) while opening notebook list at the server 8888.

Pero mientras trataba de resolver este problema, comencé a preguntarme si realmente hay alguna ventaja de usar el portátil sobre un shell de IPython con todas las funcionalidades adicionales que ofrece Emacs.

Entonces la pregunta es: ¿cuáles son las ventajas de usar EIN sobre el shell de IPython dentro de Emacs? ¿Hay alguna manera de guardar una sesión de IPython en un archivo?

El Diego Efe
fuente

Respuestas:

9

Tienes razón en que ein en el repositorio de tkf en github solo funciona con versiones de IPython anteriores a 2.x.

Dicho esto, sin embargo, si usa esta versión , encontrará que funciona con IPython 2.xy Jupyter (es decir, IPython 3.0).

La instalación de ein desde MELPA o el-get instalará la última versión de ein que funciona con las últimas versiones de IPython.

John Miller
fuente
El nuevo repositorio funciona bien en Emacs 25. Ver emacs.stackexchange.com/a/33111/8431
serv-inc
4

Creo que el valor principal de EIN era poder conectar búferes arbitrarios al núcleo de ipython que corresponde al cuaderno, permitiendo así la cooperación de múltiples "objetos" de Emacs.

Pero dado que el archivo README de EIN solo menciona ipython 0.12 y no ha habido ninguna actividad durante un tiempo, es muy probable que los cambios de API lo vuelvan inutilizable.

Sigma
fuente
1

Hay una nueva versión de EIN que reemplazó la anterior en MELPA.

En Emacs 25 y superiores, funciona de fábrica. Sin embargo, Emacs 24 necesita actualizarse, consulte https://github.com/millejoh/emacs-ipython-notebook/issues/190 .

¿Cuáles son las ventajas de usar EIN sobre el shell de IPython dentro de Emacs?

Una ventaja es leer archivos ipynb e intercambiarlos fácilmente con usuarios que no son emacs, incluso ejecutando una instancia de jupyter compartida.

serv-inc
fuente