Подтвердить что ты не робот

Ссылки между ноутбуками IPython

Можно ли связать один IPython-ноутбук с другим с гиперссылкой в ​​ячейке Markdown? Если я попробую

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

или

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

Открывается новая вкладка с необработанным неформатированным содержимым файла ipynb. Есть ли способ заставить IPython открыть другой ноутбук для использования на новой вкладке с помощью гиперссылки?

4b9b3361

Ответ 1

С IPython 2 вы можете использовать именно тот синтаксис, который вы впервые пробовали:

Link to [Notebook 2](notebook2.ipynb)

Ответ 2

Теперь можно сделать это с Ipython 1.0+ по крайней мере.

Просто выполните: localhost: 8888/My Notebook.ipynb

Вот документация для этой функции. https://github.com/ipython/ipython/pull/3058

Ответ 3

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

Вы можете получить доступ к json-версии всех ноутбуков из URL-адреса: $host/notebooks

Вот фрагмент, который работал у меня:

    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']

Измените это в соответствии с вашими потребностями.

** при дальнейшем чтении я просто понял, что OP также ищет новое создание ноутбуков, сохраняя мой ответ в любом случае как способ работы с привязкой существующих ноутбуков.

Один из способов попробовать цель OP состоит в том, чтобы запустить script, который создаст новый файл notebook.ipynb в папку ipython, где был запущен блокнот ipython. Этот файл .ipynb может быть настроен из нового ноутбука ipython, созданного с панели управления, с именем и идентификатором ноутбука, замененным на все, что вы пытаетесь связать с существующим ноутбуком. Я не пробовал это, но должен работать, поскольку файл расширения .ipynb в папку ipython показывает его на панели управления.

Ответ 4

В дополнение к предложению akim - вы можете ссылаться на любой файл (py или ipynb), используя относительную ссылку, начиная с "edit", а затем из каталога, в котором вы запустили сервер.

например. в ячейке уценки, если я хочу ссылаться на файл, относительное местоположение которого (относительно моего git репо, которое также я запустило сервер для ноутбуков), равно "./path/to/source.py", я бы добавить:

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

Ответ 5

К сожалению, это практически невозможно. Ссылка должна быть связана с идентификатором ноутбука (например,/a1e2a88f-3b91-4a4e-8ca1-d4fd7240f750 для того, над которым я сейчас работаю). Это UUID, созданный при запуске сервером IPython. Таким образом, вы можете скопировать ссылку из панели управления IPython, но она будет действительна только до перезагрузки.