Ссылка на файл python в ячейке разметки Jupyter notebook

#jupyter-notebook

#jupyter-notebook

Вопрос:

Предположим следующее: я локально запускаю jupyter-notebook сервер в своем домашнем каталоге.

У меня есть следующие файлы в ~/temp/jupyter_link :

 index.ipynb  python_file.py
  

В ячейке разметки в index.ipynb я хочу создать ссылку на python_file.py . Эта ссылка должна открываться python_file.py в редакторе jupyter-notebook. Я могу сделать это с:

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

Однако эта ссылка содержит абсолютный путь python_file.py . Я хочу использовать относительный путь (с базовым каталогом, являющимся каталогом из index.ipynb ). Я могу создать ссылку, используя относительный путь с:

 [python_file](python_file.py)
  

Однако, если я нажму на эту ссылку, меня попросят загрузить файл, и он не открывается в редакторе jupyter-notebook.

Возможно ли создать ссылку, которая открывает файл python с помощью редактора jupyter-notebook, но использует относительный путь? Псевдокод, который я представляю, будет выглядеть примерно так:

 [python_file](edit:python_file.py)
  

Вдохновленный ответом @Ivan, я мог бы добавить, что

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

также открывается редактор. Это удаляет имя хоста из ссылки, но по-прежнему не дает мне относительной ссылки.

Ответ №1:

Кажется, что следующее работает (в настоящее время?) в Jupyter 5.4.1 и Jupyterlab 0.32.1:

 [python_file](./python_file.py)
  

Ответ №2:

Вы уже отметили, как это решается в вашем вопросе, но я вроде как пропустил это

 [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)
  

Тем не менее, вы всегда будете выполнять резервное копирование в базу каталога сервера Jupyter, чтобы перейти /notebooks к /edit нему, поэтому просто забудьте о подсчете ../ и просто начните /edit .