链接到Jupyter笔记本标记单元格

时间:2016-10-12 12:28:11

标签: jupyter-notebook

假设以下内容:我在本地目录中执行jupyter-notebook服务器。

我在~/temp/jupyter_link中有以下文件:

index.ipynb  python_file.py

index.ipynb的标记单元格中,我想创建指向python_file.py的链接。此链接应使用jupyter-notebook编辑器打开python_file.py。我可以这样做:

[python_file](https://localhost:8888/edit/temp/jupyter_link/python_file.py)

但是,此链接包含python_file.py的绝对路径。我想使用相对路径(基本目录是来自index.ipynb的目录)。我可以使用相对路径创建一个链接:

[python_file](python_file.py)

但是,如果我点击此链接,我会被要求下载该文件,并且不会使用jupyter-notebook编辑器打开它。

是否可以使用jupyter-notebook编辑器创建一个打开python文件但使用相对路径的链接?我想象的伪代码就像:

[python_file](edit:python_file.py)

受@ Ivan的回答启发我可以补充一下

[python_file](/edit/temp/jupyter_link/python_file.py)

也会打开编辑器。这会从链接中删除主机名,但仍然没有给我一个相对链接。

2 个答案:

答案 0 :(得分:1)

以下内容在Jupyter 5.4.1和Jupyterlab 0.32.1中似乎有效(如今?):

[python_file](./python_file.py)

答案 1 :(得分:0)

您已经在问题中指出这是如何解决的,但我有点想念

[python_file](/edit/temp/jupyter_link/python_file.py)

实际上是最好的答案。在我找到了如何建立相对链接之后,我想通了,我几乎写完了。所以这里解释一下如何做相对以及为什么上面的链接实际上更好。

index.ipynb 使用 Jupyter 文件>打开菜单导航到 python_file.py。看看它的地址,在这种情况下它应该是这样的

 https://localhost:8888/edit/temp/jupyter_link/python_file.py

现在看看你的索引文件的地址,应该是这样的:

 https://localhost:8888/notebooks/temp/jupyter_link/index.ipynb

要从 /edit 进入 /notebooks 目录,您必须使用 .. 退出一些目录。链接应该类似于

[python_file](../../edit/temp/jupyter_link/python_file.py)

但是,从 /notebooks/edit,您将始终备份到 Jupyter 服务器目录的基础,所以只需忘记计算 ../ 并从 {{ 开始1}}。