2012-09-25 20 views
41

¿Es posible vincular un cuaderno de IPython a otro con un hipervínculo en una celda de reducción? Si intentoEnlaces entre los portátiles de IPython

Link to [Notebook 2](files/notebook2.ipynb) 

o

Link to <a href="files/notebook2.ipynb">Notebook 2</a> 

Una nueva pestaña se abre con contenidos sin formato Raw de la ipynb. ¿Hay alguna manera de que IPython abra otro portátil para utilizarlo en una nueva pestaña a través de un hipervínculo?

Respuesta

60

Desde IPython 2 puede usar exactamente la sintaxis intentó por vez primera:

Link to [Notebook 2](notebook2.ipynb) 
+2

impresionante. Esa respuesta debería ser la primera de la lista en lugar de la obsoleta anterior. – thias

0

Lamentablemente, esto no es posible en la práctica. El enlace debería estar en la ID del portátil (por ejemplo, /a1e2a88f-3b91-4a4e-8ca1-d4fd7240f750 para la que estoy trabajando en este momento). Este es un UUID creado al inicio por el servidor IPython. Para poder copiar el enlace desde el Panel de control de IPython, solo será válido hasta que reinicie.

+1

quiero añadir que no es posible en la práctica con la implementación actual * *. Esto no significa que nunca será posible.Siga [problema 3056] (https://github.com/ipython/ipython/issues/3056) –

+3

Como dijo Paul hace un año, ahora es posible gracias a un controlador de redirección, y en la próxima versión la URL debe contener el nombre de archivo eso hará que el proceso sea perfecto para el usuario final. – Matt

3

De http://python.6.n6.nabble.com/where-is-the-code-to-generate-IPython-Notebook-URL-for-a-new-ipynb-file-td4996991.html:

puede acceder a una versión JSON de todos los libros de registro de url: $ host/cuadernos

Aquí hay un fragmento que trabajó para mí:

import urllib2 
    import json 
    data = urllib2.urlopen("http://127.0.0.1:8888/notebooks") 
    json_data=data.read() 
    list_o_dicts=json.loads(json_data) 
    for d in list_o_dicts: 
     if d['name'] == 'test': 
      print d['notebook_id'] 

modificar esta de acuerdo a tu necesidad

** en otras lecturas, me acabo de dar cuenta de que OP también estaba buscando una nueva creación de bloc de notas, manteniendo mi respuesta de todos modos como forma de trabajar con la vinculación de blocs de notas existentes.

Una forma de probar el objetivo de OP es ejecutar un script que creará un nuevo archivo notebook.ipynb en la carpeta ipython desde donde se inició el cuaderno ipython. Ese archivo .ipynb se puede modelar a partir de un nuevo cuaderno ipython creado a partir del tablero, con el nombre y la identificación del portátil reemplazados con lo que sea que intente vincular desde su computadora portátil existente. No lo he intentado, pero debería funcionar, ya que al colocar un archivo de extensión .ipynb en la carpeta ipython, aparece en el panel de control.

1

Además de Akim sugerencia - se puede enlazar a cualquier (py o ipynb) archivo con un vínculo relativo, a partir de "editar", y luego desde el directorio donde comenzó el servidor.

E.g. en una celda de reducción, si quiero hacer referencia a un archivo cuya ubicación relativa (en relación con mi git repo, que también es donde lancé el servidor portátil) es "./path/to/source.py", agregaría:

[link to source](/edit/path/to/source.py)

Cuestiones relacionadas