從 IPython Notebook 遷移#
摘要#
大拆分將 IPython 的各種語言無關元件置於 Jupyter 傘下。展望未來,Jupyter 將包含服務多種語言的語言無關專案。IPython 將繼續專注於 Python 及其與 Jupyter 的使用。
本文件描述了從 IPython 版本 3 遷移到 Jupyter 時已發生的變化,以及您可能需要如何修改程式碼或配置。
理解遷移過程#
檔案自動遷移#
首次執行任何 jupyter
命令時,它將執行檔案的自動遷移。自動遷移過程會複製檔案,而不是移動檔案,將原始檔案保留在原位,並將副本放置在 Jupyter 檔案位置。如果需要,您可以透過呼叫 jupyter migrate
重新執行遷移。您的自定義配置將自動遷移,並且應該在不進行進一步編輯的情況下與 Jupyter 配合使用。將來更新或修改配置時,請記住檔案位置可能已更改。
我的配置檔案去哪了?#
也稱為:“為什麼我的配置不再起作用了?”
Jupyter 從 IPython 中分離出來意味著某些檔案的位置已移動,並且 Jupyter 專案並未繼承 IPython 的所有做法。
當您啟動第一個 Jupyter 應用程式時,相關的配置檔案會自動複製到新的 Jupyter 位置。IPython 位置中的原始配置檔案對 Jupyter 的執行沒有影響。如果您不小心編輯了原始 IPython 配置檔案,您現在可能看不到 Jupyter 的預期效果。您應該檢查您是否正在編輯 Jupyter 的配置檔案,並且在重新啟動 Jupyter 伺服器後應該會看到預期的效果。
查詢重要檔案位置#
本節提供 IPython 3 檔案和已遷移的 Jupyter 檔案的常見位置快速參考。
配置檔案#
配置檔案根據使用者的偏好自定義 Jupyter。遷移的檔案都應該自動複製到新的 Jupyter 位置。以下是位置更改:
IPython 位置 |
Jupyter 位置 |
|
---|---|---|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
|
要選擇除預設的 ~/.jupyter
之外的目錄位置,請設定 JUPYTER_CONFIG_DIR
環境變數。設定環境變數後,您可能需要執行 jupyter migrate
以將檔案複製到所需目錄。
資料檔案:核心規範和筆記本擴充套件#
資料檔案包括除配置檔案以外的使用者安裝檔案。示例包括核心規範和筆記本擴充套件。與配置檔案一樣,資料檔案也會自動遷移到新的 Jupyter 位置。
在 IPython 3 中,資料檔案位於 ~/.ipython
中。
在 Jupyter 中,資料檔案使用平臺適用的位置
OS X:
~/Library/Jupyter
Windows:
%APPDATA%
環境變數中指定的位置在其他地方,
$XDG_DATA_HOME
受到尊重,預設值為~/.local/share/jupyter
在所有情況下,都可以使用 JUPYTER_DATA_DIR
環境變數顯式設定位置。
系統範圍安裝的資料檔案(例如在 /usr/local/share/jupyter
中)未更改。每個使用者安裝的資料檔案已從 .ipython
更改為平臺適用的 Jupyter 位置。
由於 Jupyter 沒有配置檔案,我如何自定義它?#
雖然 IPython 有 配置檔案 的概念,但 Jupyter 沒有配置檔案。
在 IPython 中,配置檔案是配置和執行時檔案的集合。在 IPython 目錄 (~/.ipython
) 中,有名稱如 profile_default
或 profile_demo
的目錄。每個目錄中都包含配置檔案 (ipython_config.py
, ipython_notebook_config.py
) 和執行時檔案 (history.sqlite
, security/kernel-*.json
)。配置檔案可用於在 IPython 的配置之間切換。
以前,人們可以使用 ipython notebook --profile demo
等命令為筆記本伺服器和 IPython 核心設定配置檔案。這在 Jupyter 中已無法一氣呵成,就像在 IPython 3 中對任何其他核心也不可能一樣。
更改 Jupyter 筆記本配置目錄#
如果要更改筆記本配置,可以設定 JUPYTER_CONFIG_DIR
JUPYTER_CONFIG_DIR=./jupyter_config
jupyter notebook
更改 Jupyter 筆記本配置檔案#
如果您只想更改配置檔案,您可以這樣做
jupyter notebook --config=/path/to/myconfig.py
使用自定義核心規範更改 IPython 的配置檔案#
如果您確實想更改 IPython 核心的配置檔案,您將無法再在伺服器命令列中執行此操作。核心引數必須透過修改核心規範來更改。您無需重新啟動伺服器即可執行此操作。核心規範更改會在您每次啟動新核心時生效。但是,沒有很好的方法來修改核心規範。一種方法是使用 jupyter kernelspec list
查詢 kernel.json
檔案,然後手動修改它,例如 kernels/python3/kernel.json
。此外,a2km 是一個實驗性專案,旨在使這些事情變得更容易。
例如,將 --profile
選項新增到 kernels/mycustom/kernel.json
下的自定義核心規範中(請參見此處的 Jupyter 核心規範說明)
{
"argv": ["python", "-m", "ipykernel",
"--profile=my-ipython-profile",
"-f", "{connection_file}"],
"display_name": "Custom Profile Python",
"language": "python"
}
然後,您可以使用 --kernel=mycustom
命令列選項執行 Jupyter,IPython 將找到相應的配置檔案。
理解安裝更改#
有關安裝 Jupyter 的更多資訊,請參閱安裝和使用頁面。Jupyter 會自動遷移一些內容,例如筆記本擴充套件和核心。
筆記本擴充套件#
任何 IPython 筆記本擴充套件都應作為資料檔案遷移的一部分自動遷移。
筆記本擴充套件以前透過以下方式安裝:
ipython install-nbextension [--user] EXTENSION
現在,擴充套件透過以下方式安裝:
jupyter nbextension install [--user] EXTENSION
筆記本擴充套件將安裝在系統範圍的位置(例如 /usr/local/share/jupyter/nbextensions
)。如果是 --user
安裝,筆記本擴充套件將進入 JUPYTER_DATA_DIR
位置。不應透過猜測檔案應放置的位置來手動安裝。
核心#
核心的安裝方式與筆記本擴充套件非常相似。它們也將自動遷移。
核心規範以前透過以下方式安裝:
ipython kernelspec install [--user] KERNEL
它們現在透過以下方式安裝:
jupyter kernelspec install [--user] KERNEL
預設情況下,核心規範將放置在系統範圍的位置(例如 /usr/local/share/jupyter/kernels
)。如果是 --user
安裝,核心規範將放置在 JUPYTER_DATA_DIR
位置。不應透過猜測檔案應放置的位置來手動安裝。
理解匯入中的更改#
IPython 4.0 包含用於管理依賴項的 shim;因此,所有在 IPython 3 上執行的匯入都應在 IPython 4 上繼續執行。如果您發現任何差異,請告訴我們。
一些更改包括
IPython 3 |
Jupyter 和 IPython 4.0 |
|
---|---|---|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
|
重要
IPython.kernel
拆分
IPython.kernel
變成了兩個包
jupyter_client
用於 Jupyter 客戶端 API。ipykernel
用於 Jupyter 的 IPython 核心