簡體   English   中英

IPython筆記本之間的鏈接

[英]Links between IPython notebooks

是否可以通過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

以下是此功能的文檔。 https://github.com/ipython/ipython/pull/3058

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

您可以從url:$ host / notebooks訪問所有筆記本的json版本

這是一個適合我的片段:

    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)文件,從“編輯”開始,然后從啟動服務器的目錄開始。

例如在markdown單元格中,如果我想引用一個文件,其相對位置(相對於我的git repo,也就是我啟動筆記本服務器的地方)是“./path/to/source.py”,我會添加:

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

不幸的是,這實際上是不可能的。 鏈接需要是筆記本ID(例如/ a1e2a88f-3b91-4a4e-8ca1-d4fd7240f750 ,我正在處理的那個)。 這是由IPython服務器在啟動時創建的UUID。 因此,您可以從IPython儀表板復制鏈接,但只有在重新啟動后才會生效。

請記住,如果您的文件名包含空格,則需要將其替換為%20

例如:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM