IPython笔记本之间的链接

时间:2012-09-25 20:34:32

标签: python ipython

是否可以将一个IPython笔记本链接到Markdown单元格中的超链接?如果我试试

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

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

使用ipynb文件的原始未格式化内容打开一个新选项卡。有没有办法让IPython通过超链接打开另一个笔记本用于新标签?

6 个答案:

答案 0 :(得分:77)

从IPython 2开始,您可以使用您首次尝试的语法:

Link to [Notebook 2](notebook2.ipynb)

答案 1 :(得分:21)

现在至少可以使用Ipython 1.0+进行此操作。

只是做: localhost:8888 / My Notebook.ipynb

以下是此功能的文档。 https://github.com/ipython/ipython/pull/3058

答案 2 :(得分:3)

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

您可以从url:$ host / notebooks

访问所有笔记本的json版本

这是一个适合我的片段:

    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目标的一种方法是运行一个脚本,该脚本将在ipython文件夹中创建一个新的notebook.ipynb文件,其中ipython notebook是从该文件夹启动的。该.ipynb文件可以通过从仪表板创建的新ipython笔记本进行模板化,其中笔记本的名称和ID将替换为您尝试从现有笔记本链接的任何内容。我没有试过这个,但是应该可以工作,因为将.ipynb扩展文件放到ipython文件夹中确实会在仪表板中显示它。

答案 3 :(得分:1)

除了akim的建议 - 您可以使用相对链接链接到任何(py或ipynb)文件,从&#34;编辑&#34;开始,然后从您启动的目录开始服务器

E.g。在markdown单元格中,如果我想引用一个文件,其相对位置(相对于我的git repo,也是我启动笔记本服务器的位置)是&#34; ./ path / to / source.py&#34;,我添加:

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

答案 4 :(得分:0)

不幸的是,这实际上是不可能的。 链接需要是笔记本ID (例如 / a1e2a88f-3b91-4a4e-8ca1-d4fd7240f750 我现在正在处理的那个)。 这是由IPython服务器在启动时创建的UUID。 因此,您可以从IPython仪表板复制链接,但只有在重新启动后才会生效。

答案 5 :(得分:0)

请记住,如果文件名包含空格,则需要用%20替换空格

例如:

[Numpy](Numpy%20For%20Python.ipynb)