Ответ 1
С IPython 2 вы можете использовать именно тот синтаксис, который вы впервые пробовали:
Link to [Notebook 2](notebook2.ipynb)
Можно ли связать один IPython-ноутбук с другим с гиперссылкой в ячейке Markdown? Если я попробую
Link to [Notebook 2](files/notebook2.ipynb)
или
Link to <a href="files/notebook2.ipynb">Notebook 2</a>
Открывается новая вкладка с необработанным неформатированным содержимым файла ipynb. Есть ли способ заставить IPython открыть другой ноутбук для использования на новой вкладке с помощью гиперссылки?
С IPython 2 вы можете использовать именно тот синтаксис, который вы впервые пробовали:
Link to [Notebook 2](notebook2.ipynb)
Теперь можно сделать это с Ipython 1.0+ по крайней мере.
Просто выполните: localhost: 8888/My Notebook.ipynb
Вот документация для этой функции. https://github.com/ipython/ipython/pull/3058
Вы можете получить доступ к 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 показывает его на панели управления.
В дополнение к предложению akim - вы можете ссылаться на любой файл (py или ipynb), используя относительную ссылку, начиная с "edit", а затем из каталога, в котором вы запустили сервер.
например. в ячейке уценки, если я хочу ссылаться на файл, относительное местоположение которого (относительно моего git репо, которое также я запустило сервер для ноутбуков), равно "./path/to/source.py", я бы добавить:
[link to source](/edit/path/to/source.py)
К сожалению, это практически невозможно. Ссылка должна быть связана с идентификатором ноутбука (например,/a1e2a88f-3b91-4a4e-8ca1-d4fd7240f750 для того, над которым я сейчас работаю). Это UUID, созданный при запуске сервером IPython. Таким образом, вы можете скопировать ссылку из панели управления IPython, но она будет действительна только до перезагрузки.