Jupyter notebook 是一種 Web 應(yīng)用,它能讓用戶將說明文本、數(shù)學(xué)方程、代碼和可視化內(nèi)容全部組合到一個(gè)易于共享的文檔中,非常方便研究和教學(xué)。在原始的 Python shell 與 IPython 中,可視化在單獨(dú)的窗口中進(jìn)行,而文字資料以及各種函數(shù)和類腳本包含在獨(dú)立的文檔中。
1 安裝
通過安裝Anaconda來解決Jupyter Notebook的安裝問題,因?yàn)锳naconda已經(jīng)自動(dòng)為你安裝了Jupter Notebook及其他工具,還有python中超過180個(gè)科學(xué)包及其依賴項(xiàng)。
2 修改默認(rèn)工作目錄
在cmd中輸入 jupyter notebook --generate-config
如果該配置文件已經(jīng)存在,那么,會(huì)出現(xiàn)如下信息,從中可以見到配置文件存在的位置,注意,此時(shí),輸入N,不要overwrite

在用戶目錄下可以看到j(luò)upyter_notebook_config.py文件
找到c.NotebookApp.notebook_dir = ''
修改為需要的目錄即可,如:c.NotebookApp.notebook_dir = 'D:\workspace\jupyter_notebook'
有個(gè)問題,從命令行輸入jupyter notebook的時(shí)候發(fā)現(xiàn)目錄已經(jīng)更改了,但是點(diǎn)擊桌面的jupyter圖標(biāo)打開的目錄依然沒有修改,這是找到桌面圖標(biāo)所在位置點(diǎn)擊【屬性】,找到下圖位置,刪掉%USERPROFILE%,保存即可。

3 常用快捷鍵
命令模式快捷鍵(按 Esc 鍵開啟):
| 快捷鍵 | 作用 | 說明 |
|---|---|---|
| Enter | 轉(zhuǎn)入編輯模式 | |
| Shift-Enter | 運(yùn)行本單元,選中下個(gè)單元 | 新單元默認(rèn)為命令模式 |
| Ctrl-Enter | 運(yùn)行本單元 | |
| Alt-Enter | 運(yùn)行本單元,在其下插入新單元 | 新單元默認(rèn)為編輯模式 |
| Y | 單元轉(zhuǎn)入代碼狀態(tài) | |
| M | 單元轉(zhuǎn)入 markdown 狀態(tài) | |
| R | 單元轉(zhuǎn)入 raw 狀態(tài) | |
| 1 | 設(shè)定 1 級(jí)標(biāo)題 | 僅在 markdown 狀態(tài)下時(shí)建議使用標(biāo)題相關(guān)快捷鍵,如果單元處于其他狀態(tài),則會(huì)強(qiáng)制切換到 markdown 狀態(tài) |
| 2 | 設(shè)定 2 級(jí)標(biāo)題 | |
| 3 | 設(shè)定 3 級(jí)標(biāo)題 | |
| 4 | 設(shè)定 4 級(jí)標(biāo)題 | |
| 5 | 設(shè)定 5 級(jí)標(biāo)題 | |
| 6 | 設(shè)定 6 級(jí)標(biāo)題 | |
| Up | 選中上方單元 | |
| K | 選中上方單元 | |
| Down | 選中下方單元 | |
| J | 選中下方單元 | |
| Shift-K | 連續(xù)選擇上方單元 | |
| Shift-J | 連續(xù)選擇下方單元 | |
| A | 在上方插入新單元 | |
| B | 在下方插入新單元 | |
| X | 剪切選中的單元 | |
| C | 復(fù)制選中的單元 | |
| Shift-V | 粘貼到上方單元 | |
| V | 粘貼到下方單元 | |
| Z | 恢復(fù)刪除的最后一個(gè)單元 | |
| D,D | 刪除選中的單元 | 連續(xù)按兩個(gè) D 鍵 |
| Shift-M | 合并選中的單元 | |
| Ctrl-S | 保存當(dāng)前 NoteBook | |
| S | 保存當(dāng)前 NoteBook | |
| L | 開關(guān)行號(hào) | 編輯框的行號(hào)是可以開啟和關(guān)閉的 |
| O | 轉(zhuǎn)換輸出 | |
| Shift-O | 轉(zhuǎn)換輸出滾動(dòng) | |
| Esc | 關(guān)閉頁面 | |
| Q | 關(guān)閉頁面 | |
| H | 顯示快捷鍵幫助 | |
| I,I | 中斷 NoteBook 內(nèi)核 | |
| 0,0 | 重啟 NoteBook 內(nèi)核 | |
| Shift | 忽略 | |
| Shift-Space | 向上滾動(dòng) | |
| Space | 向下滾動(dòng) |
編輯模式快捷鍵( 按 Enter 鍵啟動(dòng)):
| 快捷鍵 | 作用 | 說明 |
|---|---|---|
| Tab | 代碼補(bǔ)全或縮進(jìn) | |
| Shift-Tab | 提示 | 輸出幫助信息,部分函數(shù)、類、方法等會(huì)顯示其定義原型,如果在其后加 ? 再運(yùn)行會(huì)顯示更加詳細(xì)的幫助 |
| Ctrl-] | 縮進(jìn) | 向右縮進(jìn) |
| Ctrl-[ | 解除縮進(jìn) | 向左縮進(jìn) |
| Ctrl-A | 全選 | |
| Ctrl-Z | 撤銷 | |
| Ctrl-Shift-Z | 重做 | |
| Ctrl-Y | 重做 | |
| Ctrl-Home | 跳到單元開頭 | |
| Ctrl-Up | 跳到單元開頭 | |
| Ctrl-End | 跳到單元末尾 | |
| Ctrl-Down | 跳到單元末尾 | |
| Ctrl-Left | 跳到左邊一個(gè)字首 | |
| Ctrl-Right | 跳到右邊一個(gè)字首 | |
| Ctrl-Backspace | 刪除前面一個(gè)字 | |
| Ctrl-Delete | 刪除后面一個(gè)字 | |
| Esc | 切換到命令模式 | |
| Ctrl-M | 切換到命令模式 | |
| Shift-Enter | 運(yùn)行本單元,選中下一單元 | 新單元默認(rèn)為命令模式 |
| Ctrl-Enter | 運(yùn)行本單元 | |
| Alt-Enter | 運(yùn)行本單元,在下面插入一單元 | 新單元默認(rèn)為編輯模式 |
| Ctrl-Shift-- | 分割單元 | 按光標(biāo)所在行進(jìn)行分割 |
| Ctrl-Shift-Subtract | 分割單元 | |
| Ctrl-S | 保存當(dāng)前 NoteBook | |
| Shift | 忽略 | |
| Up | 光標(biāo)上移或轉(zhuǎn)入上一單元 | |
| Down | 光標(biāo)下移或轉(zhuǎn)入下一單元 | |
| Ctrl-/ | 注釋整行/撤銷注釋 | 僅代碼狀態(tài)有效 |
注: 如果快捷鍵被系統(tǒng)中的其它應(yīng)用占用,則可能會(huì)失效
命令模式Command Mode
| 按鍵 | 功能 | 按鍵 | 功能 |
|---|---|---|---|
Enter |
進(jìn)入當(dāng)前塊的編輯模式 | X |
剪切選中的代碼塊 |
Shift+Enter
|
運(yùn)行當(dāng)前塊并選中下一塊 | C |
復(fù)制選中的代碼塊 |
Ctrl+Enter
|
運(yùn)行當(dāng)前塊 |
Shift+V
|
在當(dāng)前塊上方粘貼 |
Alt+Enter
|
運(yùn)行當(dāng)前塊并在下方插入新塊 | V |
在當(dāng)前塊下方粘貼 |
Y |
切換到代碼狀態(tài) | Z |
撤銷刪除操作 |
M |
切換到MarkDown狀態(tài) |
D,D
|
刪除選中的代碼塊 |
R |
切換到Raw NBConvert |
Shift+M
|
將當(dāng)前塊與下一塊合并 |
數(shù)字鍵1到6
|
將當(dāng)前塊第一行變?yōu)镸arkDown的n級(jí)標(biāo)題 |
S / Ctrl+S
|
保存并設(shè)置檢查點(diǎn) |
↑ / K
|
選擇上一個(gè)代碼塊 | L |
顯示/隱藏當(dāng)前塊的代碼行號(hào) |
↓ / J
|
選擇下一個(gè)代碼塊 | O |
顯示/隱藏當(dāng)前塊的輸出內(nèi)容 |
A |
在當(dāng)前塊上方插入新代碼塊 |
Shift+O
|
顯示/隱藏當(dāng)前塊的輸出內(nèi)容的滾動(dòng)條 |
B |
在當(dāng)前塊下方插入新代碼塊 |
Esc / Q
|
關(guān)閉彈窗 |
H |
展示快捷鍵幫助 |
I,I
|
打斷kernal運(yùn)行 |
Space |
滾動(dòng)向下 |
O,O
|
重啟kernal |
Shift+Space
|
滾動(dòng)向上 |
Shift+(↑/↓) |
選中多個(gè)代碼塊 |
編輯模式Edit Mode
| 按鍵 | 功能 | 按鍵 | 功能 |
|---|---|---|---|
Tab |
代碼補(bǔ)全/縮進(jìn) |
Ctrl+→
|
光標(biāo)右移一個(gè)詞 |
Shift+Tab
|
工具提示/反縮進(jìn) |
Ctrl+Backspace
|
刪除前一個(gè)詞 |
Ctrl+[
|
縮進(jìn) |
Ctrl+Delete
|
刪除后一個(gè)詞 |
Ctrl+]
|
反縮進(jìn) |
Ctrl+M / Esc
|
進(jìn)入命令模式 |
Ctrl+A
|
全選 |
Ctrl+Shift+P
|
打開命令選擇板 |
Ctrl+Z
|
撤銷 |
Shift+Enter
|
運(yùn)行當(dāng)前塊并選中下一塊 |
Ctrl+Y / Ctrl+Shift+Z
|
重復(fù) |
Ctrl+Enter
|
運(yùn)行當(dāng)前塊 |
Ctrl+Home
|
移動(dòng)光標(biāo)到塊首 |
Alt+Enter
|
運(yùn)行當(dāng)前塊并在下方插入新塊 |
Ctrl+End
|
移動(dòng)光標(biāo)到塊尾 |
Ctrl+Shift+-
|
按光標(biāo)位置分割當(dāng)前塊 |
Ctrl+←
|
光標(biāo)左移一個(gè)詞 |
Ctrl+S
|
保存并設(shè)置檢查點(diǎn) |
4 修改jupyter notebook的主題
主題地址:https://github.com/dunovank/jupyter-themes
4.1 安裝jupter notebook的自定義主題
pip install jupyterthemes
pip install --upgrade jupyterthemes # 可以不用升級(jí)
【問題1】版本太低
notebook 5.7.4 has requirement jupyter-core>=4.4.0, but you'll have jupyter-core 4.3.0 which is incompatible.
Installing collected packages: notebook, jupyterthemes
Found existing installation: notebook 5.0.0
Cannot uninstall 'notebook'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
【解決1】更新一下,即可
pip install --upgrade jupyter-core
【問題2】
Cannot uninstall 'notebook'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
【解決2】
pip install jupyterthemes --ignore-installed notebook
【問題3】prompt_toolkit版本太高
jupyter-console 5.2.0 has requirement prompt_toolkit<2.0.0,>=1.0.0, but you'll have prompt-toolkit 2.0.7 which is incompatible.
【解決3】先查看當(dāng)前prompt_toolkit的版本,刪掉再重新安裝
pip show prompt_toolkit
pip uninstall prompt_toolkit
pip install prompt_toolkit==1.0.15
4.2 相關(guān)命令
查看主題:
>jt -l
Available Themes:
chesterish
grade3
gruvboxd
gruvboxl
monokai
oceans16
onedork
solarizedd
solarizedl
修改主題:
jt -t oceans16 -T -N -fs 12 -tfs 12
恢復(fù)原來的配置
jt -r