一、什么是Jupyter Notebook?
1.簡介
Jupyter Notebook是基于網頁的用于交互計算的應用程序。其可被應用于全過程計算:開發、文檔編寫、運行代碼和展示結果。——Jupyter Notebook官方介紹
簡而言之,Jupyter Notebook是以網頁的形式打開,可以在網頁頁面中直接編寫代碼和運行代碼,代碼的運行結果也會直接在代碼塊下顯示的程序。如在編程過程中需要編寫說明文檔,可在同一個頁面中直接編寫,便于作及時的說明和解釋。
2.組成部分
①網頁應用
網頁應用即基于網頁形式的、結合了編寫說明文檔、數學公式、交互計算和其他富媒體形式的工具。簡言之,網頁應用是可以實現各種功能的工具。
②文檔
即Jupyter Notebook中所有交互計算、編寫說明文檔、數學公式、圖片以及其他富媒體形式的輸入和輸出,都是以文檔的形式體現的。
這些文檔是保存為后綴名為.ipynb的JSON格式文件,不僅便于版本控制,也方便與他人共享。
此外,文檔還可以導出為:HTML、LaTeX、PDF等格式。
3.Jupyter Notebook的主要特點
①編程時具有語法高亮、縮進、tab補全的功能。
②可直接通過瀏覽器運行代碼,同時在代碼塊下方展示運行結果。
③以富媒體格式展示計算結果。富媒體格式包括:HTML,LaTeX,PNG,SVG等。
④對代碼編寫說明文檔或語句時,支持Markdown語法。
⑤支持使用LaTeX編寫數學性說明。
二、安裝Jupyter Notebook
0.先試用,再決定
如果看了以上對Jupyter Notebook的介紹你還是拿不定主意究竟是否適合你,那么不要擔心,你可以先免安裝試用體驗一下,戳這里,然后再做決定。
值得注意的是,官方提供的同時試用是有限的,如果你點擊鏈接之后進入的頁面如下圖所示,那么不要著急,過會兒再試試看吧。
如果你足夠幸運,那么你將看到如下界面,就可以開始體驗啦。
1.安裝
①安裝前提
安裝Jupyter Notebook的前提是需要安裝了Python(3.3版本及以上,或2.7版本)。
②使用Anaconda安裝
如果你是小白,那么建議你通過安裝Anaconda來解決Jupyter Notebook的安裝問題,因為Anaconda已經自動為你安裝了Jupter Notebook及其他工具,還有python中超過180個科學包及其依賴項。
你可以通過進入Anaconda的官方下載頁面自行選擇下載。
常規來說,安裝了Anaconda發行版時已經自動為你安裝了Jupyter Notebook的,但如果沒有自動安裝,那么就在終端(Linux或macOS的“終端”,Windows的“Anaconda Prompt”,以下均簡稱“終端”)中輸入以下命令安裝:
conda install jupyter notebook
③使用pip命令安裝
如果你是有經驗的Python玩家,想要嘗試用pip命令來安裝JupyterNotebook,那么請看以下步驟吧!接下來的命令都輸入在終端當中的噢!
1.把pip升級到最新版本
Python 3.x
Python 2.x
注意:老版本的pip在安裝Jupyter Notebook過程中或面臨依賴項無法同步安裝的問題。因此強烈建議先把pip升級到最新版本。
2.安裝Jupyter Notebook
Python 3.x
Python 2.x
三、運行Jupyter Notebook
0.幫助
如果你有任何jupyter notebook命令的疑問,可以考慮查看官方幫助文檔。
1.啟動
①默認端口啟動
在終端中輸入命令:
執行命令之后,在終端中將會顯示一系列notebook的服務器信息,同時瀏覽器將會自動啟動Jupyter Notebook。
②指定端口啟動
如果你想自定義端口號來啟動Jupyter Notebook,可以在終端中輸入命令。
③啟動服務器但不打開瀏覽器
如果你只是想啟動Jupyter Notebook的服務器但不打算立刻進入到主頁面,那么就無需立刻啟動瀏覽器。
此時,將會在終端顯示啟動的服務器信息,并在服務器啟動之后,顯示出打開瀏覽器頁面的鏈接。當你需要啟動瀏覽器頁面時,只需要復制鏈接,并粘貼在瀏覽器的地址欄中,輕按回車變轉到了你的Jupyter Notebook頁面。
例圖中由于在完成上面內容時我同時啟動了多個Jupyter Notebook,因此顯示我的“8888”端口號被占用,最終分配給我的是“8889”。
2.主頁面
①主頁面內容
當執行完啟動命令之后,瀏覽器將會進入到Notebook的主頁面,如下圖所示。
如果你的主頁面里邊的文件夾跟我的不同,或者你在疑惑為什么首次啟動里邊就已經有這么多文件夾,不要擔心,這里邊的文件夾全都是你的家目錄里的目錄文件。
②設置Jupyter Notebook文件存放位置
如果你不想把今后在Jupyter Notebook中編寫的所有文檔都直接保存在家目錄下,那你需要修改Jupyter Notebook的文件存放路徑。
⑴創建文件夾/目錄
Windows用戶在想要存放Jupyter Notebook文件的磁盤中新建文件夾并為該文件夾命名;雙擊進入該文件夾,然后復制地址欄中的路徑。
Linux/macOS用戶在想要存放Jupyter Notebook文件的位置創建目錄并為目錄命名,命令為:mkdir
注意:“
⑵配置文件路徑
一個便捷獲取配置文件所在路徑的命令:
注意:這條命令雖然可以用于查看配置文件所在的路徑,但主要用途是是否將這個路徑下的配置文件替換為默認配置文件。如果你是第一次查詢,那么或許不會出現下圖的提示;若文件已經存在或被修改,使用這個命令之后會出現詢問“Overwrite/Users/raxxie/.jupyter/jupyter_notebook_config.py with default config?[y/N]”,即“用默認配置文件覆蓋此路徑下的文件嗎?”,如果按“y”,則完成覆蓋,那么之前所做的修改都將失效;如果只是為了查詢路徑,那么一定要輸入“N”。
⑶修改配置文件
Windows系統的用戶可以使用文檔編輯工具或IDE打開“jupyter_notebook_config.py”文件并進行編輯。常用的文檔編輯工具和IDE有記事本、Notepad++、vim、SublimeText、PyCharm等。其中,vim是沒有圖形界面的,是一款學習曲線較為陡峭的編輯器,其他工具在此不做使用說明,因為上手相對簡單。通過vim修改配置文件的方法請繼續往下閱讀。
Linux/macOS系統的用戶建議直接通過終端調用vim來對配置文件進行修改。具體操作步驟如下:
?打開配置文件
?查找關鍵詞
?編輯配置文件
?取消注釋
?保存配置文件
?驗證
?注意
四、Jupyter Notebook的基本使用
1.Files頁面
此時你的界面當中應該還沒有“Conda”和“Nbextensions”類目。不要著急,這兩個類目將分別在“五、拓展功能”中的“1.關聯Jupyter Notebook和conda的環境和包——‘nb_conda’”和“2.Markdown生成目錄”中安裝。
Files頁面是用于管理和創建文件相關的類目。
①筆記本的基本操作
上圖展示的是筆記本的基本結構和功能。根據圖中的注解已經可以解決絕大多數的使用問題了!
工具欄的使用如圖中的注解一樣直觀,在此不過多解釋。需要特別說明的是“單元格的狀態”,有Code,Markdown,Heading,Raw NBconvert。其中,最常用的是前兩個,分別是代碼狀態,Markdown編寫狀態。Jupyter Notebook已經取消了Heading狀態,即標題單元格。取而代之的是Markdown的一級至六級標題。而Raw NBconvert目前極少用到,此處也不做過多講解。
菜單欄涵蓋了筆記本的所有功能,即便是工具欄的功能,也都可以在菜單欄的類目里找到。然而,并不是所有功能都是常用的,比如Widgets,Navigate。Kernel類目的使用,主要是對內核的操作,比如中斷、重啟、連接、關閉、切換內核等,由于我們在創建筆記本時已經選擇了內核,因此切換內核的操作便于我們在使用筆記本時切換到我們想要的內核環境中去。
②筆記本重命名的兩種方式
⑴筆記本內部重命名
在使用筆記本時,可以直接在其內部進行重命名。在左上方“Jupyter”的圖標旁有程序默認的標題“Untitled”,點擊“Untitled”然后在彈出的對話框中輸入自擬的標題,點擊“Rename”即完成了重命名。
⑵筆記本外部重命名
若在使用筆記本時忘記了重命名,且已經保存并退出至“Files”界面,則在“Files”界面勾選需要重命名的文件,點擊“Rename”然后直接輸入自擬的標題即可。
⑶演示
2.Running頁面
Running頁面主要展示的是當前正在運行當中的終端和“ipynb”格式的筆記本。若想要關閉已經打開的終端和“ipynb”格式的筆記本,僅僅關閉其頁面是無法徹底退出程序的,需要在Running頁面點擊其對應的“Shutdown”。
3.Clusters頁面
類目現在已由IPython parallel對接,且由于現階段使用頻率較低,因此在此不做詳細說明,想要了解更多可以訪問IPython parallel的官方網站。
4.Conda頁面
Conda頁面主要是Jupyter Notebook與Conda關聯之后對Conda環境和包進行直接操作和管理的頁面工具。詳細信息請直接查閱“五、拓展功能”中的“1.關聯Jupyter Notebook和conda的環境和包——‘nb_conda’”。這是目前使用Jupyter Notebook的必備環節,因此請務必查閱。
5.Nbextensions頁面
Nbextensions頁面提供了多個Jupyter Notebook的插件,使其功能更加強大。該頁面中主要使用的插件有nb_conda,nb_present,Table of Contents(2)。這些功能我們無需完全掌握,也無需安裝所有的擴展功能,根據本文檔提供的學習思路,我們只需要安裝Talbe of Contents(2)即可,該功能可為Markdown文檔提供目錄導航,便于我們編寫文檔。該安裝指導請查閱“五、拓展功能”中的“2.Markdown生成目錄”。
五、拓展功能
1.關聯Jupyter Notebook和conda的環境和包——“nb_conda”☆
①安裝
執行上述命令能夠將你conda創建的環境與Jupyter Notebook相關聯,便于你在Jupyter Notebook的使用中,在不同的環境下創建筆記本進行工作。
②使用
可以在Conda類目下對conda環境和包進行一系列操作。
可以在筆記本內的“Kernel”類目里的“Change”切換內核。
③卸載
2.Markdown生成目錄
不同于有道云筆記的Markdown編譯器,Jupyter Notebook無法為Markdown文檔通過特定語法添加目錄,因此需要通過安裝擴展來實現目錄的添加。
執行上述命令后,啟動Jupyter Notebook,你會發現導航欄多了“Nbextensions”的類目,點擊“Nbextensions”,勾選“Table of Contents⑵”
之后再在Jupyter Notebook中使用Markdown,點擊下圖的圖標即可使用啦。
3.Markdown在文中設置鏈接并定位
在使用Markdown編輯文檔時,難免會遇到需要在文中設定鏈接,定位在文檔中的其他位置便于查看。因為Markdown可以完美的兼容html語法,因此這種功能可以通過html語法當中“a標簽”的索引用法來實現。
“自定義索引詞”最好是英文,較長的詞可以用下劃線連接。
“a標簽”出現在想要被跳轉到的文章位置,html標簽除了單標簽外均要符合“有頭()必有尾()”的原則。頭尾之間的“跳轉提示”是可有可無的。
“a標簽”中的“id”值即是為正文中添加鏈接時設定的“自定義索引值”,這里通過“id”的值實現從正文的鏈接跳轉至指定位置的功能。
4.加載指定網頁源代碼
①使用場景
想要在Jupyter Notebook中直接加載指定網站的源代碼到筆記本中。
②方法
執行以下命令:
%load URL
其中,URL為指定網站的地址。
5.加載本地Python文件
①使用場景
想在Jupyter Notebook中加載本地的Python文件并執行文件代碼。
②方法
執行命令:
%load Python文件的絕對路徑
③注意
Python文件的后綴為“.py”。
“%load”后跟的是Python文件的絕對路徑。
輸入命令后,可以按CTRL回車來執行命令。第一次執行,是將本地的Python文件內容加載到單元格內。此時,Jupyter Notebook會自動將“%load”命令注釋掉(即在前邊加井號“#”),以便在執行已加載的文件代碼時不重復執行該命令;第二次執行,則是執行已加載文件的代碼。
6.直接運行本地Python文件
①使用場景
不想在Jupyter Notebook的單元格中加載本地Python文件,想要直接運行。
②方法
執行命令:
%run Python文件的絕對路徑
或
!python3 Python文件的絕對路徑
或
!python Python文件的絕對路徑
7.在Jupyter Notebook中獲取當前位置
①使用場景
想要在Jupyter Notebook中獲取當前所在位置的絕對路徑。
②方法
%pwd
或
!pwd
8.在Jupyter Notebook使用shell命令
①方法一——在筆記本的單元格中
⑴語法
在Jupyter Notebook中的筆記本單元格中用英文感嘆號“!”后接shell命令即可執行shell命令。
②方法二——在Jupyter Notebook中新建終端
⑴啟動方法
在Jupyter Notebook主界面,即“File”界面中點擊“New”;在“New”下拉框中點擊“Terminal”即新建了終端。此時終端位置是在你的家目錄,可以通過pwd命令查詢當前所在位置的絕對路徑。
⑵關閉方法
在Jupyter Notebook的“Running”界面中的“Terminals”類目中可以看到正在運行的終端,點擊后邊的“Shutdown”即可關閉終端。
9.隱藏筆記本輸入單元格
①使用場景
在Jupyter Notebook的筆記本中無論是編寫文檔還是編程,都有輸入(In[])和輸出(Out[])。當我們編寫的代碼或文檔使用的單元格較多時,有時我們只想關注輸出的內容而暫時不看輸入的內容,這時就需要隱藏輸入單元格而只顯示輸出單元格。
10.魔術命令
由于目前暫時用不到過多的魔術命令,因此暫時先參考官網的文檔。
六、增加內核——“ipykernel”☆
1.使用場景
場景一:同時用不同版本的Python進行工作,在Jupyter Notebook中無法切換,即“New”的下拉菜單中無法使用需要的環境。
場景二:創建了不同的虛擬環境(或許具有相同的Python版本但安裝的包不同),在Jupyter Notebook中無法切換,即“New”的下拉菜單中無法使用需要的環境。
接下來將分別用“命令行模式”和“圖形界面模式”來解決以上兩個場景的問題。顧名思義,“命令行模式”即在終端中通過執行命令來一步步解決問題;“圖形界面模式”則是通過在Jupyter Notebook的網頁中通過鼠標點擊的方式解決上述問題。
其中,“圖形界面模式”的解決方法相對比較簡單快捷,如果對于急于解決問題,不需要知道運行原理的朋友,可以直接進入“3.解決方法之圖形界面模式”來閱讀。
“命令行模式”看似比較復雜,且又劃分了使用場景,但通過這種方式來解決問題可以更好的了解其中的工作原理,比如,每進行一步操作對應的命令是什么,而命令的執行是為了達到什么樣的目的,這些可能都被封裝在圖形界面上的一個點擊動作來完成了。對于想更深入了解其運作過程的朋友,可以接著向下閱讀。
2.解決方法之命令行模式
①同時使用不同版本的Python
⑴在Python 3中創建Python 2內核
?pip安裝
首先安裝Python 2的ipykernel包。
再為當前用戶安裝Python 2的內核(ipykernel)。
注意:“--user”參數的意思是針對當前用戶安裝,而非系統范圍內安裝。
?conda安裝
首先創建Python版本為2.x且具有ipykernel的新環境,其中“
然后切換至新創建的環境。
為當前用戶安裝Python 2的內核(ipykernel)。
注意:“--user”參數的意思是針對當前用戶安裝,而非系統范圍內安裝。
⑵在Python 2中創建Python 3內核
?pip安裝
首先安裝Python 3的ipykernel包。
再為當前用戶安裝Python 2的內核(ipykernel)。
注意:“--user”參數的意思是針對當前用戶安裝,而非系統范圍內安裝。
?conda安裝
首先創建Python版本為3.x且具有ipykernel的新環境,其中“
然后切換至新創建的環境。
為當前用戶安裝Python 3的內核(ipykernel)。
注意:“--user”參數的意思是針對當前用戶安裝,而非系統范圍內安裝。
②為不同環境創建內核
⑴切換至需安裝內核的環境
注意:“
⑵檢查該環境是否安裝了ipykernel包
執行上述命令查看當前環境下安裝的包,若沒有安裝ipykernel包,則執行安裝命令;否則進行下一步。
⑶為當前環境下的當前用戶安裝Python內核
若該環境的Python版本為2.x,則執行命令:
python2-m ipykernel install--user--name
若該環境的Python版本為3.x,則執行命令:
python3-m ipykernel install--user--name
注意:
1.“
2.“
3.“--name”參數的值,即“
4.“--display-name”參數的值是顯示在Jupyter Notebook的菜單中的名稱。
⑷檢驗
使用命令jupyter notebook啟動Jupyter Notebook;在“Files”下的“New”下拉框中即可找到你在第⑶步中的自定義名稱,此時,你便可以盡情地在Jupyter Notebook中切換環境,在不同的環境中創建筆記本進行工作和學習啦!
3.解決方法之圖形界面模式
①你創建了一個新的環境,但發現在Jupyter Notebook的“New”中找不到這個環境,無法在該環境中創建筆記本。
問題發現
②進入Jupyter Notebook→Conda→在“Condaenvironment”中點擊你要添加ipykernel包的環境→左下方搜索框輸入“ipykernel”→勾選“ipykernel”→點擊搜索框旁的“→”箭頭→安裝完畢→右下方框內找到“ipykernel”說明已經安裝成功
解決方法
③在終端control c關閉Jupyter Notebook的服務器然后重啟Jupyter Notebook,在“File”的“New”的下拉列表里就可以找到你的環境啦。
驗證
七、Jupyter Notebook快捷鍵
1.Mac與Windows特殊按鍵對照表
2.Jupyter Notebook筆記本的兩種模式
①命令模式
命令模式將鍵盤命令與Jupyter Notebook筆記本命令相結合,可以通過鍵盤不同鍵的組合運行筆記本的命令。
按esc鍵進入命令模式。
命令模式下,單元格邊框為灰色,且左側邊框線為藍色粗線條。
②編輯模式
編輯模式使用戶可以在單元格內編輯代碼或文檔。
按enter或return鍵進入編輯模式。
編輯模式下,單元格邊框和左側邊框線均為綠色。
3.兩種模式的快捷鍵
①命令模式
②編輯模式
4.查看和編輯快捷鍵
①查看快捷鍵
①進入Jupyter Notebook主界面“File”中。
②在“New”的下拉列表中選擇環境創建一個筆記本。
③點擊“Help”。
④點擊“Keyboard Shortcuts”。
②編輯快捷鍵
⑴方法一
①進入Jupyter Notebook主界面“File”中。
②在“New”的下拉列表中選擇環境創建一個筆記本。
③點擊“Help”。
④點擊“Keyboard Shortcuts”。
⑤彈出的對話框中“Command Mode(press Esc to enable)”旁點擊“EditShortcuts”按鈕。
⑵方法二
①進入Jupyter Notebook主界面“File”中。
②在“New”的下拉列表中選擇環境創建一個筆記本。
③點擊“Help”。
④點擊“Edit Keyboard Shortcuts”。
八、關閉和退出
1.關閉筆記本和終端
當我們在Jupyter Notebook中創建了終端或筆記本時,將會彈出新的窗口來運行終端或筆記本。當我們使用完畢想要退出終端或筆記本時,僅僅關閉頁面是無法結束程序運行的,因此我們需要通過以下步驟將其完全關閉。
①方法一
⑴進入“Files”頁面。
⑵勾選想要關閉的“ipynb”筆記本。正在運行的筆記本其圖標為綠色,且后邊標有“Running”的字樣;已經關閉的筆記本其圖標為灰色。
⑶點擊上方的黃色的“Shutdown”按鈕。
⑷成功關閉筆記本。
注意:此方法只能關閉筆記本,無法關閉終端。
②方法二
⑴進入“Running”頁面。
⑵第一欄是“Terminals”,即所有正在運行的終端均會在此顯示;第二欄是“Notebooks”,即所有正在運行的“ipynb”筆記本均會在此顯示。
⑶點擊想要關閉的終端或筆記本后黃色“Shutdown”按鈕。
⑷成功關閉終端或筆記本。
注意:此方法可以關閉任何正在運行的終端和筆記本。
③注意
⑴只有“ipynb”筆記本和終端需要通過上述方法才能使其結束運行。
⑵“txt”文檔,即“New”下拉列表中的“TextFile”,以及“Folder”只要關閉程序運行的頁面即結束運行,無需通過上述步驟關閉。
2.退出Jupyter Notebook程序
如果你想退出Jupyter Notebook程序,僅僅通過關閉網頁是無法退出的,因為當你打開Jupyter Notebook時,其實是啟動了它的服務器。
你可以嘗試關閉頁面,并打開新的瀏覽器頁面,把之前的地址輸進地址欄,然后跳轉頁面,你會發現再次進入了剛才“關閉”的Jupyter Notebook頁面。
如果你忘記了剛才關閉的頁面地址,可以在啟動Jupyter Notebook的終端中找到地址,復制并粘貼至新的瀏覽器頁面的地址欄,會發現同樣能夠進入剛才關閉的頁面。
因此,想要徹底退出Jupyter Notebook,需要關閉它的服務器。只需要在它啟動的終端上按:
Mac用戶:control c
Windows用戶:ctrl c
然后在終端上會提示:“Shutdown this notebook server(y/[n])?”輸入y即可關閉服務器,這才是徹底退出了Jupyter Notebook程序。此時,如果你想要通過輸入剛才關閉網頁的網址進行訪問Jupyter Notebook便會看到報錯頁面。