【问题标题】:Links between IPython notebooksIPython 笔记本之间的链接
【发布时间】:2012-09-17 10:08:44
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: python ipython


    【解决方案1】:

    不幸的是,这实际上是不可能的。 该链接需要指向笔记本 ID (例如 /a1e2a88f-3b91-4a4e-8ca1-d4fd7240f750 是我现在正在研究的那个)。 这是 IPython 服务器在启动时创建的 UUID。 所以你可以从 IPython Dashboard 复制链接,但它只有在你重新启动后才有效。

    【讨论】:

    • 我想补充一点,current 实现实际上是不可能的。这并不意味着它永远不可能。关注issue 3056
    • 正如保罗一年前所说,现在可以通过重定向处理程序实现,并且在下一个版本中,url 应该包含文件名,这将使最终用户的流程无缝。
    【解决方案2】:

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

    您可以从以下网址访问所有笔记本的 json 版本:$host/notebooks

    这是一个对我有用的 sn-p:

        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 文件夹确实会显示在仪表板中。

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

      • 好发现,我试试看
      【解决方案4】:

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

      Link to [Notebook 2](notebook2.ipynb)
      

      【讨论】:

      • 太棒了。该答案应该是列表的顶部,而不是上面过时的答案。
      • 我认为你添加了这个没有审查它,这不起作用
      • 我刚刚测试了这个答案,它在 JupyterLab 中也能完美运行。
      【解决方案5】:

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

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

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

      【讨论】:

        【解决方案6】:

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

        例如:

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

        【讨论】:

          猜你喜欢
          • 2018-09-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多