是否可以通过 Markdown 单元格中的超链接将一个 IPython 笔记本链接到另一个?如果我尝试
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
您可以从 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 文件夹确实会在仪表板中显示它。
除了 akim 的建议 - 您可以使用相对链接链接到任何(py 或 ipynb)文件,以“edit”开头,然后从您启动服务器的目录开始。
例如,在降价单元格中,如果我想引用一个文件,其相对位置(相对于我的 git 存储库,这也是我启动笔记本服务器的位置)是“./path/to/source.py”,我会添加:
[link to source](/edit/path/to/source.py)
请记住,如果您的文件名有空格,则需要将其替换为 %20
例如:
[Numpy](Numpy%20For%20Python.ipynb)
不幸的是,这实际上是不可能的。该链接需要指向笔记本 ID(例如/a1e2a88f-3b91-4a4e-8ca1-d4fd7240f750用于我现在正在处理的那个)。这是 IPython 服务器在启动时创建的 UUID。因此,您可以从 IPython Dashboard 复制链接,但它仅在您重新启动之前有效。