1. 什么是Jupyter Notebook?
-
Jupyter Notebook是以網頁的形式打開,可以在網頁頁面中直接編寫代碼和運行代碼,代碼的運行結果也會直接在代碼塊下顯示的程序。如在編程過程中需要編寫說明文檔,可在同一個頁面中直接編寫,便於作及時的說明和解釋。
2. 組成部分
(1)網頁應用
(2)文檔
即Jupyter Notebook中所有交互計算、編寫說明文檔、數學公式、圖片以及其他富媒體形式的輸入和輸出,都是以文檔的形式體現的。
這些文檔是保存為后綴名為.ipynb
的JSON
格式文件,不僅便於版本控制,也方便與他人共享。
此外,文檔還可以導出為:HTML、LaTeX、PDF等格式。
3.Jupyter Notebook的主要特點
① 編程時具有語法高亮、縮進、tab補全的功能。
② 可直接通過瀏覽器運行代碼,同時在代碼塊下方展示運行結果。
③ 以富媒體格式展示計算結果。富媒體格式包括:HTML,LaTeX,PNG,SVG等。
④ 對代碼編寫說明文檔或語句時,支持Markdown語法。
⑤ 支持使用LaTeX編寫數學性說明。
4.安裝Jupyter Notebook
(1)安裝Jupyter Notebook的前提是需要安裝了Python(我的是3.7版本)
(2)我是使用Anaconda來解決Jupyter Notebook的安裝問題,因為Anaconda已經自動為你安裝了Jupter Notebook及其他工具,還有python中超過180個科學包及其依賴項。
如果你有任何jupyter notebook命令的疑問,可以考慮查看官方幫助文檔,命令如下:
jupyter notebook --help
或
jupyter notebook -h
[1]啟動
安裝好后的Anaconda可以從這里進入Jupyter Notebook。
可以點擊Anaconda Prompt,在終端輸入命令
jupyter notebook
也可以點擊Jupyter Notebook進入終端
復制最下面的地址到瀏覽器就可以打開。
PS:之后在Jupyter Notebook的所有操作,都請保持終端不要關閉,因為一旦關閉終端,就會斷開與本地服務器的鏈接,你將無法在Jupyter Notebook中進行其他操作。
瀏覽器地址欄中默認地將會顯示:http://localhost:8888
。其中,“localhost”指的是本機,“8888”則是端口號。
如果你同時啟動了多個Jupyter Notebook,由於默認端口“8888”被占用,因此地址欄中的數字將從“8888”起,每多啟動一個Jupyter Notebook數字就加1,如“8889”、“
[2]指定端口啟動
自定義端口號來啟動Jupyter Notebook,可以在終端中輸入以下命令:
jupyter notebook --port <port_number>
其中,“<port_number>”是自定義端口號,直接以數字的形式寫在命令當中,數字兩邊不加尖括號“<>”。如:jupyter notebook --port 9999
,即在端口號為“9999”的服務器啟動Jupyter Notebook。
[3]Jupyter Notebook的基本使用
1.files頁面
2.筆記本的基本操作
5.拓展功能
[1] 關聯Jupyter Notebook和conda的環境和包——“nb_conda”
-
安裝
conda install nb_conda
執行上述命令能夠將你conda創建的環境與Jupyter Notebook相關聯,便於你在Jupyter Notebook的使用中,在不同的環境下創建筆記本進行工作。
-
使用
-
可以在Conda類目下對conda環境和包進行一系列操作。
-
###
-
可以在筆記本內的“Kernel”類目里的“Change kernel”切換內核。
-
卸載
canda remove nb_conda
執行上述命令即可卸載nb_conda包。
[2] Markdown生成目錄
-
不同於有道雲筆記的Markdown編譯器,Jupyter Notebook無法為Markdown文檔通過特定語法添加目錄,因此需要通過安裝擴展來實現目錄的添加。
conda install -c conda-forge jupyter_contrib_nbextensions
-
執行上述命令后,啟動Jupyter Notebook,你會發現導航欄多了“Nbextensions”的類目,點擊“Nbextensions”,勾選“Table of Contents ⑵”
-
之后再在Jupyter Notebook中使用Markdown,點擊下圖的圖標即可使用啦。
[3]加載指定網頁源代碼
-
想要在Jupyter Notebook中直接加載指定網站的源代碼到筆記本中。
-
方法
執行以下命令:
%load URL
注:URL為指定網站的地址。
[4]加載本地Python文件
-
使用場景
想在Jupyter Notebook中加載本地的Python文件並執行文件代碼。
-
方法
執行以下命令:
%load Python文件的絕對路徑
-
注意:
-
Python文件的后綴為“py”
-
“%load后跟的是Python文件的絕對路徑。
-
輸入命令后,可以按ctrl+enter來執行命令。第一次執行,是將本地的python文件內容加載到單元格內。此時,Jupyter Notebook會自動將“%load”命令注釋掉(即在前邊加井號“#”),以便在執行已加載的文件代碼時不重復執行該命令;第二次執行,則是執行已加載文件的代碼。
-
[5]增加內核-“ipykernel”
-
使用場景
-
場景一:同時用不同版本的Python進行工作,在Jupyter Notebook中無法切換,即“New”的下拉菜單中無法使用需要的環境。
-
場景二:創建了不同的虛擬環境(或許具有相同的Python版本但安裝的包不同),在Jupyter Notebook中無法切換,即“New”的下拉菜單中無法使用需要的環境。
-
-
解決方法之命令行模式
-
“命令行模式”看似比較復雜,且又划分了使用場景,但通過這種方式來解決問題可以更好的了解其中的工作原理,比如,每進行一步操作對應的命令是什么,而命令的執行是為了達到什么樣的目的,這些可能都被封裝在圖形界面上的一個點擊動作來完成了。對於想更深入了解其運作過程的朋友,可以接着向下閱讀。
-
1.同時使用不同版本的Python
-
在python3中創建python2內核
(a)pip 安裝
-
首先安裝Python 2的ipykernel包。
python2 -m pip install ipykernel
-
再為當前用戶安裝Python 2的內核(ipykernel)。
python2 -m ipykernel install --user
-
-
-
PS:“--user”參數的意思是針對當前用戶安裝,而非系統范圍內的安裝。
(b)conda安裝
-
首先創建Python版本為3.x且具有ipykernel的新環境,其中“<env_name>”為自定義環境名,環境名兩邊不加尖括號“<>”。
conda create -n <env_name> python=3 ipykernel
-
然后切換至新創建的環境
Windows: activate <env_name>
Linux/macOS: source activate <env_name> -
為當前用戶安裝Python3的內核(ipykernel)
python3 -m ipykernel install --user
-
-
2.為不同環境創建內核
-
切換至需要安裝內核的環境
Windows: activate <env_name>
Linux/macOS: source activate <env_name>
ps:“<env_name>"是需要安裝內核的環境名稱,環境兩邊不加尖括號”<>"。
-
檢查該環境是否安裝了ipykernel包
conda list
執行上述命令查看當前環境下安裝的包,若沒有安裝ipykernel包,則執行安裝命令;否則進行下一步。
conda install ipykernel
-
-
為當前環境下的當前用戶安裝Python內核
若該環境的Python版本為2.x,則執行命令:
python2 -m ipykernel install --user --name <env_name> --display-name "<notebook_name>"
-
若該環境的Python版本為3.x,則執行命令:
python3 -m ipykernel install --user --name <env_name> --display-name "<notebook_name>"
-
-
-
注意:
\1. “<env_name>”為當前環境的環境名稱。環境名兩邊不加尖括號“<>”。
\2. “<notebook_name>”為自定義顯示在Jupyter Notebook中的名稱。名稱兩邊不加尖括號“<>”,但雙引號必須加。
\3. “--name”參數的值,即“<env_name>”是Jupyter內部使用的,其目錄的存放路徑為
~/Library/Jupyter/kernels/
。如果定義的名稱在該路徑已經存在,那么將自動覆蓋該名稱目錄的內容。\4. “--display-name”參數的值是顯示在Jupyter Notebook的菜單中的名稱。
-
-
檢驗
-
使用命令
jupyter notebook
啟動Jupyter Notebook;在“Files”下的“New”下拉框中即可找到你在第⑶步中的自定義名稱,此時,你便可以盡情地在Jupyter Notebook中切換環境,在不同的環境中創建筆記本進行工作和學習啦!
[6]關閉和退出
-
關閉筆記本和終端
當我們在Jupyter Notebook中創建了終端或筆記本時,將會彈出新的窗口來運行終端或筆記本。當我們使用完畢想要退出終端或筆記本時,僅僅關閉頁面是無法結束程序運行的,因此我們需要通過以下步驟將其完全關閉。
-
方法一:
-
⑴ 進入“Files”頁面。
⑵ 勾選想要關閉的“ipynb”筆記本。正在運行的筆記本其圖標為綠色,且后邊標有“Running”的字樣;已經關閉的筆記本其圖標為灰色。
⑶ 點擊上方的黃色的“Shutdown”按鈕。
⑷ 成功關閉筆記本。
注意:此方法只能關閉筆記本,無法關閉終端。
-
方法二:
-
⑴ 進入“Running”頁面。
⑵ 第一欄是“Terminals”,即所有正在運行的終端均會在此顯示;第二欄是“Notebooks”,即所有正在運行的“ipynb”筆記本均會在此顯示。
⑶ 點擊想要關閉的終端或筆記本后黃色“Shutdown”按鈕。
⑷ 成功關閉終端或筆記本。
注意:此方法可以關閉任何正在運行的終端和筆記本。
-
⑴ 只有“ipynb”筆記本和終端需要通過上述方法才能使其結束運行。
⑵ “txt”文檔,即“New”下拉列表中的“Text File”,以及“Folder”只要關閉程序運行的頁面即結束運行,無需通過上述步驟關閉。
-
-
退出Jupyter Notebook程序
-
想要徹底退出Jupyter Notebook,需要關閉它的服務器。只需要在它啟動的終端上按:ctrl+c
-