61

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

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

或者

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

将打开一个新选项卡,其中包含 ipynb 文件的原始未格式化内容。有没有办法让 IPython 通过超链接打开另一个笔记本以在新选项卡中使用?

4

6 回答 6

97

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

Link to [Notebook 2](notebook2.ipynb)
于 2014-05-29T13:14:00.353 回答
21

现在至少可以使用 Ipython 1.0+ 来做到这一点。

只需:localhost:8888/My Notebook.ipynb

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

于 2013-10-18T10:36:46.543 回答
3

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

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

于 2012-12-14T02:04:36.933 回答
1

除了 akim 的建议 - 您可以使用相对链接链接到任何(py 或 ipynb)文件,以“edit”开头,然后从您启动服务器的目录开始。

例如,在降价单元格中,如果我想引用一个文件,其相对位置(相对于我的 git 存储库,这也是我启动笔记本服务器的位置)是“./path/to/source.py”,我会添加:

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

于 2015-03-09T18:57:08.973 回答
1

请记住,如果您的文件名有空格,则需要将其替换为 %20

例如:

[Numpy](Numpy%20For%20Python.ipynb)
于 2019-08-04T14:17:08.323 回答
0

不幸的是,这实际上是不可能的。该链接需要指向笔记本 ID(例如/a1e2a88f-3b91-4a4e-8ca1-d4fd7240f750用于我现在正在处理的那个)。这是 IPython 服务器在启动时创建的 UUID。因此,您可以从 IPython Dashboard 复制链接,但它仅在您重新启动之前有效。

于 2012-12-13T15:10:14.233 回答