假设以下内容:我在本地目录中执行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)
也会打开编辑器。这会从链接中删除主机名,但仍然没有给我一个相对链接。
答案 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}}。