Jupyter Notebook介紹、安裝及使用教程

目錄

一、什么是Jupyter Notebook?

1. 簡(jiǎn)介

Jupyter Notebook是基于網(wǎng)頁的用于交互計(jì)算的應(yīng)用程序。其可被應(yīng)用于全過程計(jì)算:開發(fā)、文檔編寫、運(yùn)行代碼和展示結(jié)果。——Jupyter Notebook官方介紹

簡(jiǎn)而言之,Jupyter Notebook是以網(wǎng)頁的形式打開,可以在網(wǎng)頁頁面中直接編寫代碼和運(yùn)行代碼,代碼的運(yùn)行結(jié)果也會(huì)直接在代碼塊下顯示。如在編程過程中需要編寫說明文檔,可在同一個(gè)頁面中直接編寫,便于作及時(shí)的說明和解釋。

2. 組成部分

① 網(wǎng)頁應(yīng)用

網(wǎng)頁應(yīng)用即基于網(wǎng)頁形式的、結(jié)合了編寫說明文檔、數(shù)學(xué)公式、交互計(jì)算和其他富媒體形式的工具。簡(jiǎn)言之,網(wǎng)頁應(yīng)用是可以實(shí)現(xiàn)各種功能的工具。

② 文檔

即Jupyter Notebook中所有交互計(jì)算、編寫說明文檔、數(shù)學(xué)公式、圖片以及其他富媒體形式的輸入和輸出,都是以文檔的形式體現(xiàn)的。

這些文檔是保存為后綴名為.ipynbJSON格式文件,不僅便于版本控制,也方便與他人共享。

此外,文檔還可以導(dǎo)出為:HTML、LaTeX、PDF等格式。

3. Jupyter Notebook的主要特點(diǎn)

  1. 編程時(shí)具有語法高亮、縮進(jìn)、tab補(bǔ)全的功能。

  2. 可直接通過瀏覽器運(yùn)行代碼,同時(shí)在代碼塊下方展示運(yùn)行結(jié)果。

  3. 以富媒體格式展示計(jì)算結(jié)果。富媒體格式包括:HTML,LaTeX,PNG,SVG等。

  4. 對(duì)代碼編寫說明文檔或語句時(shí),支持Markdown語法。

  5. 支持使用LaTeX編寫數(shù)學(xué)性說明。

二、安裝Jupyter Notebook

0. 先試用,再?zèng)Q定

如果看了以上對(duì)Jupyter Notebook的介紹你還是拿不定主意究竟是否適合你,那么不要擔(dān)心,你可以先免安裝試用體驗(yàn)一下,戳這里,然后再做決定。

值得注意的是,官方提供的同時(shí)試用是有限的,如果你點(diǎn)擊鏈接之后進(jìn)入的頁面如下圖所示,那么不要著急,過會(huì)兒再試試看吧。


試用失敗

如果你足夠幸運(yùn),那么你將看到如下界面,就可以開始體驗(yàn)啦。

主界面


試用成功

編輯頁面


編輯頁面

1. 安裝

① 安裝前提

安裝Jupyter Notebook的前提是需要安裝了Python(3.3版本及以上,或2.7版本)。

② 使用Anaconda安裝

如果你是小白,那么建議你通過安裝Anaconda來解決Jupyter Notebook的安裝問題,因?yàn)锳naconda已經(jīng)自動(dòng)為你安裝了Jupter Notebook及其他工具,還有python中超過180個(gè)科學(xué)包及其依賴項(xiàng)。

你可以通過進(jìn)入Anaconda的官方下載頁面自行選擇下載;如果你對(duì)閱讀英文文檔感到頭痛,或者對(duì)安裝步驟一無所知,甚至也想快速了解一下什么是Anaconda,那么可以前往我的另一篇文章Anaconda介紹、安裝及使用教程。你想要的,都在里面!

常規(guī)來說,安裝了Anaconda發(fā)行版時(shí)已經(jīng)自動(dòng)為你安裝了Jupyter Notebook的,但如果沒有自動(dòng)安裝,那么就在終端(Linux或macOS的“終端”,Windows的“Anaconda Prompt”,以下均簡(jiǎn)稱“終端”)中輸入以下命令安裝:

conda install jupyter notebook

③ 使用pip命令安裝

如果你是有經(jīng)驗(yàn)的Python玩家,想要嘗試用pip命令來安裝Jupyter Notebook,那么請(qǐng)看以下步驟吧!接下來的命令都輸入在終端當(dāng)中的噢!

  1. 把pip升級(jí)到最新版本

    • Python 3.x
    pip3 install --upgrade pip
    
    • Python 2.x
    pip install --upgrade pip
    
  • 注意:老版本的pip在安裝Jupyter Notebook過程中或面臨依賴項(xiàng)無法同步安裝的問題。因此強(qiáng)烈建議先把pip升級(jí)到最新版本。
  1. 安裝Jupyter Notebook

    • Python 3.x
    pip3 install jupyter
    
    • Python 2.x
    pip install jupyter
    

三、運(yùn)行Jupyter Notebook

0. 幫助

如果你有任何jupyter notebook命令的疑問,可以考慮查看官方幫助文檔,命令如下:

jupyter notebook --help

jupyter notebook -h

1. 啟動(dòng)

① 默認(rèn)端口啟動(dòng)

在終端中輸入以下命令:

jupyter notebook

執(zhí)行命令之后,在終端中將會(huì)顯示一系列notebook的服務(wù)器信息,同時(shí)瀏覽器將會(huì)自動(dòng)啟動(dòng)Jupyter Notebook。

啟動(dòng)過程中終端顯示內(nèi)容如下:

$ jupyter notebook
[I 08:58:24.417 NotebookApp] Serving notebooks from local directory: /Users/catherine
[I 08:58:24.417 NotebookApp] 0 active kernels
[I 08:58:24.417 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/
[I 08:58:24.417 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
  • 注意:之后在Jupyter Notebook的所有操作,都請(qǐng)保持終端不要關(guān)閉,因?yàn)橐坏╆P(guān)閉終端,就會(huì)斷開與本地服務(wù)器的鏈接,你將無法在Jupyter Notebook中進(jìn)行其他操作啦。

瀏覽器地址欄中默認(rèn)地將會(huì)顯示:http://localhost:8888。其中,“l(fā)ocalhost”指的是本機(jī),“8888”則是端口號(hào)。

URL

如果你同時(shí)啟動(dòng)了多個(gè)Jupyter Notebook,由于默認(rèn)端口“8888”被占用,因此地址欄中的數(shù)字將從“8888”起,每多啟動(dòng)一個(gè)Jupyter Notebook數(shù)字就加1,如“8889”、“8890”……

② 指定端口啟動(dòng)

如果你想自定義端口號(hào)來啟動(dòng)Jupyter Notebook,可以在終端中輸入以下命令:

jupyter notebook --port <port_number>

其中,“<port_number>”是自定義端口號(hào),直接以數(shù)字的形式寫在命令當(dāng)中,數(shù)字兩邊不加尖括號(hào)“<>”。如:jupyter notebook --port 9999,即在端口號(hào)為“9999”的服務(wù)器啟動(dòng)Jupyter Notebook。

③ 啟動(dòng)服務(wù)器但不打開瀏覽器

如果你只是想啟動(dòng)Jupyter Notebook的服務(wù)器但不打算立刻進(jìn)入到主頁面,那么就無需立刻啟動(dòng)瀏覽器。在終端中輸入:

jupyter notebook --no-browser

此時(shí),將會(huì)在終端顯示啟動(dòng)的服務(wù)器信息,并在服務(wù)器啟動(dòng)之后,顯示出打開瀏覽器頁面的鏈接。當(dāng)你需要啟動(dòng)瀏覽器頁面時(shí),只需要復(fù)制鏈接,并粘貼在瀏覽器的地址欄中,輕按回車變轉(zhuǎn)到了你的Jupyter Notebook頁面。


no_browser

例圖中由于在完成上面內(nèi)容時(shí)我同時(shí)啟動(dòng)了多個(gè)Jupyter Notebook,因此顯示我的“8888”端口號(hào)被占用,最終分配給我的是“8889”。

2. 主頁面

① 主頁面內(nèi)容

當(dāng)執(zhí)行完啟動(dòng)命令之后,瀏覽器將會(huì)進(jìn)入到Notebook的主頁面,如下圖所示。


Notebook Dashboard

如果你的主頁面里邊的文件夾跟我的不同,或者你在疑惑為什么首次啟動(dòng)里邊就已經(jīng)有這么多文件夾,不要擔(dān)心,這里邊的文件夾全都是你的家目錄里的目錄文件。你可以在終端中執(zhí)行以下2步來查看:

cdcd -cd ~cd /Users/<user_name>

  • 這個(gè)命令將會(huì)進(jìn)入你的家目錄。

  • “<user_name>” 是用戶名。用戶名兩邊不加尖括號(hào)“<>”。

ls

  • 這個(gè)命令將會(huì)展示你家目錄下的文件。

② 設(shè)置Jupyter Notebook文件存放位置

如果你不想把今后在Jupyter Notebook中編寫的所有文檔都直接保存在家目錄下,那你需要修改Jupyter Notebook的文件存放路徑。

⑴ 創(chuàng)建文件夾/目錄

  • Windows用戶在想要存放Jupyter Notebook文件的磁盤新建文件夾并為該文件夾命名;雙擊進(jìn)入該文件夾,然后復(fù)制地址欄中的路徑。

  • Linux/macOS用戶在想要存放Jupyter Notebook文件的位置創(chuàng)建目錄并為目錄命名,命令為:mkdir <directory_name>;進(jìn)入目錄,命令為:cd <directory_name>;查看目錄的路徑,命令為:pwd;復(fù)制該路徑。

  • 注意:“<directory_name>”是自定義的目錄名。目錄名兩邊不加尖括號(hào)“<>”。

⑵ 配置文件路徑

  • 一個(gè)便捷獲取配置文件所在路徑的命令:
jupyter notebook --generate-config
  • 注意: 這條命令雖然可以用于查看配置文件所在的路徑,但主要用途是是否將這個(gè)路徑下的配置文件替換默認(rèn)配置文件。
    如果你是第一次查詢,那么或許不會(huì)出現(xiàn)下圖的提示;若文件已經(jīng)存在或被修改,使用這個(gè)命令之后會(huì)出現(xiàn)詢問“Overwrite /Users/raxxie/.jupyter/jupyter_notebook_config.py with default config? [y/N]”,即“用默認(rèn)配置文件覆蓋此路徑下的文件嗎?”,如果按“y”,則完成覆蓋,那么之前所做的修改都將失效;如果只是為了查詢路徑,那么一定要輸入“N”。
命令

常規(guī)的情況下,Windows和Linux/macOS的配置文件所在路徑和配置文件名如下所述:

  • Windows系統(tǒng)的配置文件路徑:C:\Users\<user_name>\.jupyter\

  • Linux/macOS系統(tǒng)的配置文件路徑:/Users/<user_name>/.jupyter/~/.jupyter/

  • 配置文件名:jupyter_notebook_config.py

  • 注意:

① “<user_name>”為你的用戶名。用戶名兩邊不加尖括號(hào)“<>”。

② Windows和Linux/macOS系統(tǒng)的配置文件存放路徑其實(shí)是相同的,只是系統(tǒng)不同,表現(xiàn)形式有所不同而已。

③ Windows和Linux/macOS系統(tǒng)的配置文件也是相同的。文件名以“.py”結(jié)尾,是Python的可執(zhí)行文件。

④ 如果你不是通過一步到位的方式前往配置文件所在位置,而是一層一層進(jìn)入文件夾/目錄的,那么當(dāng)你進(jìn)入家目錄后,用ls命令會(huì)發(fā)現(xiàn)找不到“.jupyter”文件夾/目錄。這是因?yàn)榉彩且浴?”開頭的目錄都是隱藏文件,你可以通過ls -a命令查看當(dāng)前位置下所有的隱藏文件。

⑶ 修改配置文件

  • Windows系統(tǒng)的用戶可以使用文檔編輯工具或IDE打開“jupyter_notebook_config.py”文件并進(jìn)行編輯。常用的文檔編輯工具和IDE有記事本、Notepad++、vim、Sublime Text、PyCharm等。其中,vim是沒有圖形界面的,是一款學(xué)習(xí)曲線較為陡峭的編輯器,其他工具在此不做使用說明,因?yàn)樯鲜窒鄬?duì)簡(jiǎn)單。通過vim修改配置文件的方法請(qǐng)繼續(xù)往下閱讀。

  • Linux/macOS系統(tǒng)的用戶建議直接通過終端調(diào)用vim來對(duì)配置文件進(jìn)行修改。具體操作步驟如下:

? 打開配置文件

打開終端,輸入命令:

vim ~/.jupyter/jupyter_notebook_config.py
vim打開配置文件

執(zhí)行上述命令后便進(jìn)入到配置文件當(dāng)中了。

? 查找關(guān)鍵詞

進(jìn)入配置文件后查找關(guān)鍵詞“c.NotebookApp.notebook_dir”。查找方法如下:

進(jìn)入配置文件后不要按其他鍵,用英文半角直接輸入/c.NotebookApp.notebook_dir,這時(shí)搜索的關(guān)鍵詞已在文檔中高亮顯示了,按回車,光標(biāo)從底部切換到文檔正文中被查找關(guān)鍵詞的首字母。

? 編輯配置文件

小寫i進(jìn)入編輯模式,底部出現(xiàn)“--INSERT--”說明成功進(jìn)入編輯模式。使用方向鍵把光標(biāo)定位在第二個(gè)單引號(hào)上(光標(biāo)定位在哪個(gè)字符,就在這個(gè)字符前開始輸入),把“⑴ 創(chuàng)建文件夾/目錄”步驟中復(fù)制的路徑粘貼在此處。

? 取消注釋

把該行行首的井號(hào)(#)刪除。因?yàn)榕渲梦募荘ython的可執(zhí)行文件,在Python中,井號(hào)(#)表示注釋,即在編譯過程中不會(huì)執(zhí)行該行命令,所以為了使修改生效,需要?jiǎng)h除井號(hào)(#)。

config

? 保存配置文件

先按ESC鍵,從編輯模式退出,回到命令模式。

再用英文半角直接輸入:wq,回車即成功保存且退出了配置文件。

注意:

  • 冒號(hào)(:) 一定要有,且也是英文半角。
  • w:保存。
  • q:退出。
? 驗(yàn)證

在終端中輸入命令jupyter notebook打開Jupyter Notebook,此時(shí)你會(huì)看到一個(gè)清爽的界面,恭喜!

modified

? 注意
  • 以上所有命令均以英文半角格式輸入,若有報(bào)錯(cuò),請(qǐng)嚴(yán)格檢查這兩個(gè)條件,英文半角。

  • 這里僅介紹了vim編輯器修改配置文件的方法,沒有對(duì)vim編輯器的詳細(xì)使用進(jìn)行講解,所以無需了解vim編輯器的具體使用方法,只需要按照上述步驟一定可以順利完成修改!

  • 推薦有時(shí)間和經(jīng)歷時(shí)學(xué)習(xí)一下vim編輯器的使用。這款強(qiáng)大的編輯器將會(huì)成為你未來工作中的利器。

四、Jupyter Notebook的基本使用

1. Files頁面

Files頁面

此時(shí)你的界面當(dāng)中應(yīng)該還沒有“Conda”和“Nbextensions”類目。不要著急,這兩個(gè)類目將分別在“五、拓展功能”中的“1.關(guān)聯(lián)Jupyter Notebook和conda的環(huán)境和包——‘nb_conda’”和“2.Markdown生成目錄”中安裝。

Files頁面是用于管理和創(chuàng)建文件相關(guān)的類目。

對(duì)于現(xiàn)有的文件,可以通過勾選文件的方式,對(duì)選中文件進(jìn)行復(fù)制、重命名、移動(dòng)、下載、查看、編輯和刪除的操作。

同時(shí),也可以根據(jù)需要,在“New”下拉列表中選擇想要?jiǎng)?chuàng)建文件的環(huán)境,進(jìn)行創(chuàng)建“ipynb”格式的筆記本、“txt”格式的文檔、終端或文件夾。如果你創(chuàng)建的環(huán)境沒有在下拉列表中顯示,那么你需要依次前往“五、拓展功能”中的“1.關(guān)聯(lián)Jupyter Notebook和conda的環(huán)境和包——‘nb_conda’”和“六、增加內(nèi)核——‘ipykernel’”中解決該問題。

① 筆記本的基本操作

筆記本的使用

上圖展示的是筆記本的基本結(jié)構(gòu)和功能。根據(jù)圖中的注解已經(jīng)可以解決絕大多數(shù)的使用問題了!

工具欄的使用如圖中的注解一樣直觀,在此不過多解釋。需要特別說明的是“單元格的狀態(tài)”,有Code,Markdown,Heading,Raw NBconvert。其中,最常用的是前兩個(gè),分別是代碼狀態(tài),Markdown編寫狀態(tài)。Jupyter Notebook已經(jīng)取消了Heading狀態(tài),即標(biāo)題單元格。取而代之的是Markdown的一級(jí)至六級(jí)標(biāo)題。而Raw NBconvert目前極少用到,此處也不做過多講解。

菜單欄涵蓋了筆記本的所有功能,即便是工具欄的功能,也都可以在菜單欄的類目里找到。然而,并不是所有功能都是常用的,比如Widgets,Navigate。Kernel類目的使用,主要是對(duì)內(nèi)核的操作,比如中斷、重啟、連接、關(guān)閉、切換內(nèi)核等,由于我們?cè)趧?chuàng)建筆記本時(shí)已經(jīng)選擇了內(nèi)核,因此切換內(nèi)核的操作便于我們?cè)谑褂霉P記本時(shí)切換到我們想要的內(nèi)核環(huán)境中去。由于其他的功能相對(duì)比較常規(guī),根據(jù)圖中的注解來嘗試使用筆記本的功能已經(jīng)非常便捷,因此不再做詳細(xì)講解。

② 筆記本重命名的兩種方式

⑴ 筆記本內(nèi)部重命名

在使用筆記本時(shí),可以直接在其內(nèi)部進(jìn)行重命名。在左上方“Jupyter”的圖標(biāo)旁有程序默認(rèn)的標(biāo)題“Untitled”,點(diǎn)擊“Untitled”然后在彈出的對(duì)話框中輸入自擬的標(biāo)題,點(diǎn)擊“Rename”即完成了重命名。

⑵ 筆記本外部重命名

若在使用筆記本時(shí)忘記了重命名,且已經(jīng)保存并退出至“Files”界面,則在“Files”界面勾選需要重命名的文件,點(diǎn)擊“Rename”然后直接輸入自擬的標(biāo)題即可。

⑶ 演示

重命名

2. Running頁面

Running頁面主要展示的是當(dāng)前正在運(yùn)行當(dāng)中的終端和“ipynb”格式的筆記本。若想要關(guān)閉已經(jīng)打開的終端和“ipynb”格式的筆記本,僅僅關(guān)閉其頁面是無法徹底退出程序的,需要在Running頁面點(diǎn)擊其對(duì)應(yīng)的“Shutdown”。更多關(guān)閉方法可以查閱“八、關(guān)閉和退出”中的“1.關(guān)閉筆記本和終端

Running

3. Clusters頁面

Clusters tab is now provided by IPython parallel. See 'IPython parallel' for installation details.

Clusters類目現(xiàn)在已由IPython parallel對(duì)接,且由于現(xiàn)階段使用頻率較低,因此在此不做詳細(xì)說明,想要了解更多可以訪問IPython parallel的官方網(wǎng)站。

4. Conda頁面

Conda頁面主要是Jupyter Notebook與Conda關(guān)聯(lián)之后對(duì)Conda環(huán)境和包進(jìn)行直接操作和管理的頁面工具。詳細(xì)信息請(qǐng)直接查閱“五、拓展功能”中的“1.關(guān)聯(lián)Jupyter Notebook和conda的環(huán)境和包——‘nb_conda’”。這是目前使用Jupyter Notebook的必備環(huán)節(jié),因此請(qǐng)務(wù)必查閱。

5. Nbextensions頁面

nbextensions

Nbextensions頁面提供了多個(gè)Jupyter Notebook的插件,使其功能更加強(qiáng)大。該頁面中主要使用的插件有nb_conda,nb_present,Table of Contents(2)。這些功能我們無需完全掌握,也無需安裝所有的擴(kuò)展功能,根據(jù)本文檔提供的學(xué)習(xí)思路,我們只需要安裝Talbe of Contents(2)即可,該功能可為Markdown文檔提供目錄導(dǎo)航,便于我們編寫文檔。該安裝指導(dǎo)請(qǐng)查閱“五、拓展功能”中的“2.Markdown生成目錄”。

五、拓展功能

<a id=conda></a>

1. 關(guān)聯(lián)Jupyter Notebook和conda的環(huán)境和包——“nb_conda”☆

① 安裝

conda install nb_conda

執(zhí)行上述命令能夠?qū)⒛鉩onda創(chuàng)建的環(huán)境與Jupyter Notebook相關(guān)聯(lián),便于你在Jupyter Notebook的使用中,在不同的環(huán)境下創(chuàng)建筆記本進(jìn)行工作。

② 使用

  • 可以在Conda類目下對(duì)conda環(huán)境和包進(jìn)行一系列操作。


    conda類目
  • 可以在筆記本內(nèi)的“Kernel”類目里的“Change kernel”切換內(nèi)核。


    切換內(nèi)核

③ 卸載

canda remove nb_conda

執(zhí)行上述命令即可卸載nb_conda包。

<a id=nbextensions></a>

2. Markdown生成目錄

  • 不同于有道云筆記的Markdown編譯器,Jupyter Notebook無法為Markdown文檔通過特定語法添加目錄,因此需要通過安裝擴(kuò)展來實(shí)現(xiàn)目錄的添加。
conda install -c conda-forge jupyter_contrib_nbextensions
  • 執(zhí)行上述命令后,啟動(dòng)Jupyter Notebook,你會(huì)發(fā)現(xiàn)導(dǎo)航欄多了“Nbextensions”的類目,點(diǎn)擊“Nbextensions”,勾選“Table of Contents ⑵”


    nbextensions
  • 之后再在Jupyter Notebook中使用Markdown,點(diǎn)擊下圖的圖標(biāo)即可使用啦。


    添加目錄

3. Markdown在文中設(shè)置鏈接并定位

在使用Markdown編輯文檔時(shí),難免會(huì)遇到需要在文中設(shè)定鏈接,定位在文檔中的其他位置便于查看。因?yàn)镸arkdown可以完美的兼容html語法,因此這種功能可以通過html語法當(dāng)中“a標(biāo)簽”的索引用法來實(shí)現(xiàn)。

語法格式如下:

[添加鏈接的正文](#自定義索引詞)
<a id=自定義索引詞>跳轉(zhuǎn)提示</a>
  • 注意:

    1. 語法格式當(dāng)中所有的符號(hào)均是英文半角。
    2. “自定義索引詞”最好是英文,較長(zhǎng)的詞可以用下劃線連接。
    3. “a標(biāo)簽”出現(xiàn)在想要被跳轉(zhuǎn)到的文章位置,html標(biāo)簽除了單標(biāo)簽外均要符合“有頭(<a>)必有尾(</a>)”的原則。頭尾之間的“跳轉(zhuǎn)提示”是可有可無的。
    4. “a標(biāo)簽”中的“id”值即是為正文中添加鏈接時(shí)設(shè)定的“自定義索引值”,這里通過“id”的值實(shí)現(xiàn)從正文的鏈接跳轉(zhuǎn)至指定位置的功能。
  • 例:

    1. 有跳轉(zhuǎn)提示語


      有提示語
    2. 無跳轉(zhuǎn)提示語


      無提示語

4. 加載指定網(wǎng)頁源代碼

① 使用場(chǎng)景

想要在Jupyter Notebook中直接加載指定網(wǎng)站的源代碼到筆記本中。

② 方法

執(zhí)行以下命令:

%load URL

其中,URL為指定網(wǎng)站的地址。

③ 例

加載指定網(wǎng)站源代碼

5. 加載本地Python文件

① 使用場(chǎng)景

想在Jupyter Notebook中加載本地的Python文件并執(zhí)行文件代碼。

② 方法

執(zhí)行以下命令:

%load Python文件的絕對(duì)路徑

③ 注意

  1. Python文件的后綴為“.py”。
  2. “%load”后跟的是Python文件的絕對(duì)路徑。
  3. 輸入命令后,可以按CTRL 回車來執(zhí)行命令。第一次執(zhí)行,是將本地的Python文件內(nèi)容加載到單元格內(nèi)。此時(shí),Jupyter Notebook會(huì)自動(dòng)將“%load”命令注釋掉(即在前邊加井號(hào)“#”),以便在執(zhí)行已加載的文件代碼時(shí)不重復(fù)執(zhí)行該命令;第二次執(zhí)行,則是執(zhí)行已加載文件的代碼。

④ 例

加載本地Python文件

6. 直接運(yùn)行本地Python文件

① 使用場(chǎng)景

不想在Jupyter Notebook的單元格中加載本地Python文件,想要直接運(yùn)行。

② 方法

執(zhí)行命令:

%run Python文件的絕對(duì)路徑

!python3 Python文件的絕對(duì)路徑

!python Python文件的絕對(duì)路徑

③ 注意

  1. Python文件的后綴為“.py”。
  2. “%run”后跟的是Python文件的絕對(duì)路徑。
  3. “!python3”用于執(zhí)行Python 3.x版本的代碼。
  4. “!python”用于執(zhí)行Python 2.x版本的代碼。
  5. “!python3”和“!python”屬于 !shell命令 語法的使用,即在Jupyter Notebook中執(zhí)行shell命令的語法。
  6. 輸入命令后,可以按 CTRL 回車 來執(zhí)行命令,執(zhí)行過程中將不顯示本地Python文件的內(nèi)容,直接顯示運(yùn)行結(jié)果。

④ 例

直接運(yùn)行Python文件

7. 在Jupyter Notebook中獲取當(dāng)前位置

① 使用場(chǎng)景

想要在Jupyter Notebook中獲取當(dāng)前所在位置的絕對(duì)路徑。

② 方法

%pwd

!pwd

③ 注意

  1. 獲取的位置是當(dāng)前Jupyter Notebook中創(chuàng)建的筆記本所在位置,且該位置為絕對(duì)路徑。
  2. “!pwd”屬于 !shell命令 語法的使用,即在Jupyter Notebook中執(zhí)行shell命令的語法。

④ 例

獲取當(dāng)前路徑

8. 在Jupyter Notebook使用shell命令

① 方法一——在筆記本的單元格中

⑴ 語法

!shell命令
  • 在Jupyter Notebook中的筆記本單元格中用英文感嘆號(hào)“!”后接shell命令即可執(zhí)行shell命令。

⑵ 例

shell命令

② 方法二——在Jupyter Notebook中新建終端

⑴ 啟動(dòng)方法

在Jupyter Notebook主界面,即“File”界面中點(diǎn)擊“New”;在“New”下拉框中點(diǎn)擊“Terminal”即新建了終端。此時(shí)終端位置是在你的家目錄,可以通過pwd命令查詢當(dāng)前所在位置的絕對(duì)路徑。

⑵ 關(guān)閉方法

在Jupyter Notebook的“Running”界面中的“Terminals”類目中可以看到正在運(yùn)行的終端,點(diǎn)擊后邊的“Shutdown”即可關(guān)閉終端。

⑶ 例

終端

9. 隱藏筆記本輸入單元格

① 使用場(chǎng)景

在Jupyter Notebook的筆記本中無論是編寫文檔還是編程,都有輸入(In [])和輸出(Out [])。當(dāng)我們編寫的代碼或文檔使用的單元格較多時(shí),有時(shí)我們只想關(guān)注輸出的內(nèi)容而暫時(shí)不看輸入的內(nèi)容,這時(shí)就需要隱藏輸入單元格而只顯示輸出單元格。

② 方法一

⑴ 代碼

from IPython.display import display
from IPython.display import HTML
import IPython.core.display as di # Example: di.display_html('<h3>%s:</h3>' % str, raw=True)

# 這行代碼的作用是:當(dāng)文檔作為HTML格式輸出時(shí),將會(huì)默認(rèn)隱藏輸入單元格。
di.display_html('<script>jQuery(function() {if (jQuery("body.notebook_app").length == 0) { jQuery(".input_area").toggle(); jQuery(".prompt").toggle();}});</script>', raw=True)

# 這行代碼將會(huì)添加“Toggle code”按鈕來切換“隱藏/顯示”輸入單元格。
di.display_html('''<button onclick="jQuery('.input_area').toggle(); jQuery('.prompt').toggle();">Toggle code</button>''', raw=True)

在筆記本第一個(gè)單元格中輸入以上代碼,然后執(zhí)行,即可在該文檔中使用“隱藏/顯示”輸入單元格功能。

  • 缺陷:此方法不能很好的適用于Markdown單元格。

⑵ 例

隱藏/顯示方法一

③ 方法二

⑴ 代碼

from IPython.display import HTML

HTML('''<script>
code_show=true; 
function code_toggle() {
 if (code_show){
 $('div.input').hide();
 } else {
 $('div.input').show();
 }
 code_show = !code_show
} 
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit" value="Click here to toggle on/off the raw code."></form>''')

在筆記本第一個(gè)單元格中輸入以上代碼,然后執(zhí)行,即可在該文檔中使用“隱藏/顯示”輸入單元格功能。

  • 缺陷:此方法不能很好的適用于Markdown單元格。

⑵ 例

隱藏/顯示方法二

10. 魔術(shù)命令

由于目前暫時(shí)用不到過多的魔術(shù)命令,因此暫時(shí)先參考官網(wǎng)的文檔。

<a id=ipykernel></a>

六、增加內(nèi)核——“ipykernel” ☆

1. 使用場(chǎng)景

  1. 場(chǎng)景一:同時(shí)用不同版本的Python進(jìn)行工作,在Jupyter Notebook中無法切換,即“New”的下拉菜單中無法使用需要的環(huán)境。

  2. 場(chǎng)景二:創(chuàng)建了不同的虛擬環(huán)境(或許具有相同的Python版本但安裝的包不同),在Jupyter Notebook中無法切換,即“New”的下拉菜單中無法使用需要的環(huán)境。

接下來將分別用“命令行模式”和“圖形界面模式”來解決以上兩個(gè)場(chǎng)景的問題。顧名思義,“命令行模式”即在終端中通過執(zhí)行命令來一步步解決問題;“圖形界面模式”則是通過在Jupyter Notebook的網(wǎng)頁中通過鼠標(biāo)點(diǎn)擊的方式解決上述問題。

其中,“圖形界面模式”的解決方法相對(duì)比較簡(jiǎn)單快捷,如果對(duì)于急于解決問題,不需要知道運(yùn)行原理的朋友,可以直接進(jìn)入“3. 解決方法之圖形界面模式”來閱讀。

“命令行模式”看似比較復(fù)雜,且又劃分了使用場(chǎng)景,但通過這種方式來解決問題可以更好的了解其中的工作原理,比如,每進(jìn)行一步操作對(duì)應(yīng)的命令是什么,而命令的執(zhí)行是為了達(dá)到什么樣的目的,這些可能都被封裝在圖形界面上的一個(gè)點(diǎn)擊動(dòng)作來完成了。對(duì)于想更深入了解其運(yùn)作過程的朋友,可以接著向下閱讀。

2. 解決方法之命令行模式

① 同時(shí)使用不同版本的Python

⑴ 在Python 3中創(chuàng)建Python 2內(nèi)核

? pip安裝
  • 首先安裝Python 2的ipykernel包。
python2 -m pip install ipykernel
  • 再為當(dāng)前用戶安裝Python 2的內(nèi)核(ipykernel)。
python2 -m ipykernel install --user
  • 注意:“--user”參數(shù)的意思是針對(duì)當(dāng)前用戶安裝,而非系統(tǒng)范圍內(nèi)安裝。
? conda安裝
  • 首先創(chuàng)建Python版本為2.x且具有ipykernel的新環(huán)境,其中“<env_name>”為自定義環(huán)境名,環(huán)境名兩邊不加尖括號(hào)“<>”。
conda create -n <env_name> python=2 ipykernel
  • 然后切換至新創(chuàng)建的環(huán)境。
Windows: activate <env_name>
Linux/macOS: source activate <env_name>
  • 當(dāng)前用戶安裝Python 2的內(nèi)核(ipykernel)。
python2 -m ipykernel install --user
  • 注意:“--user”參數(shù)的意思是針對(duì)當(dāng)前用戶安裝,而非系統(tǒng)范圍內(nèi)安裝。

⑵ 在Python 2中創(chuàng)建Python 3內(nèi)核

? pip安裝
  • 首先安裝Python 3的ipykernel包。
python3 -m pip install ipykernel
  • 再為當(dāng)前用戶安裝Python 2的內(nèi)核(ipykernel)。
python3 -m ipykernel install --user
  • 注意:“--user”參數(shù)的意思是針對(duì)當(dāng)前用戶安裝,而非系統(tǒng)范圍內(nèi)安裝。
? conda安裝
  • 首先創(chuàng)建Python版本為3.x且具有ipykernel的新環(huán)境,其中“<env_name>”為自定義環(huán)境名,環(huán)境名兩邊不加尖括號(hào)“<>”。
conda create -n <env_name> python=3 ipykernel
  • 然后切換至新創(chuàng)建的環(huán)境。
Windows: activate <env_name>
Linux/macOS: source activate <env_name>
  • 當(dāng)前用戶安裝Python 3的內(nèi)核(ipykernel)。
python3 -m ipykernel install --user
  • 注意:“--user”參數(shù)的意思是針對(duì)當(dāng)前用戶安裝,而非系統(tǒng)范圍內(nèi)安裝。

② 為不同環(huán)境創(chuàng)建內(nèi)核

⑴ 切換至需安裝內(nèi)核的環(huán)境

Windows: activate <env_name>
Linux/macOS: source activate <env_name>
  • 注意:“<env_name>”是需要安裝內(nèi)核的環(huán)境名稱,環(huán)境名兩邊不加尖括號(hào)“<>”。

⑵ 檢查該環(huán)境是否安裝了ipykernel包

conda list

執(zhí)行上述命令查看當(dāng)前環(huán)境下安裝的包,若沒有安裝ipykernel包,則執(zhí)行安裝命令;否則進(jìn)行下一步。

conda install ipykernel

⑶ 為當(dāng)前環(huán)境下的當(dāng)前用戶安裝Python內(nèi)核

  • 若該環(huán)境的Python版本為2.x,則執(zhí)行命令:
python2 -m ipykernel install --user --name <env_name> --display-name "<notebook_name>"
  • 若該環(huán)境的Python版本為3.x,則執(zhí)行命令:
python3 -m ipykernel install --user --name <env_name> --display-name "<notebook_name>"
  • 注意:
    1. “<env_name>”為當(dāng)前環(huán)境的環(huán)境名稱。環(huán)境名兩邊不加尖括號(hào)“<>”。

    2. “<notebook_name>”為自定義顯示在Jupyter Notebook中的名稱。名稱兩邊不加尖括號(hào)“<>”,但雙引號(hào)必須加

    3. “--name”參數(shù)的值,即“<env_name>”是Jupyter內(nèi)部使用的,其目錄的存放路徑為~/Library/Jupyter/kernels/。如果定義的名稱在該路徑已經(jīng)存在,那么將自動(dòng)覆蓋該名稱目錄的內(nèi)容。

    4. “--display-name”參數(shù)的值是顯示在Jupyter Notebook的菜單中的名稱。

⑷ 檢驗(yàn)

使用命令jupyter notebook啟動(dòng)Jupyter Notebook;在“Files”下的“New”下拉框中即可找到你在第⑶步中的自定義名稱,此時(shí),你便可以盡情地在Jupyter Notebook中切換環(huán)境,在不同的環(huán)境中創(chuàng)建筆記本進(jìn)行工作和學(xué)習(xí)啦!

<a id=gui></a>

3. 解決方法之圖形界面模式

① 你創(chuàng)建了一個(gè)新的環(huán)境,但卻發(fā)現(xiàn)在Jupyter Notebook的“New”中找不到這個(gè)環(huán)境,無法在該環(huán)境中創(chuàng)建筆記本。


圖形界面_問題

② 進(jìn)入Jupyter Notebook → Conda → 在“Conda environment”中點(diǎn)擊你要添加ipykernel包的環(huán)境 → 左下方搜索框輸入“ipykernel” → 勾選“ipykernel” → 點(diǎn)擊搜索框旁的“→”箭頭 → 安裝完畢 → 右下方框內(nèi)找到“ipykernel”說明已經(jīng)安裝成功。

圖形界面_解決

③ 在終端CTRL C關(guān)閉Jupyter Notebook的服務(wù)器然后重啟Jupyter Notebook,在“File”的“New”的下拉列表里就可以找到你的環(huán)境啦。

圖形界面_驗(yàn)證

七、Jupyter Notebook快捷鍵

1. Mac與Windows特殊按鍵對(duì)照表

符號(hào) Mac按鍵 Windows按鍵
? command
? control ctrl
? option alt
? shift shift
? return return
? space space
? tab tab
? delete backspace
? fn delete delete
- - -

2. Jupyter Notebook筆記本的兩種模式

① 命令模式

  • 命令模式將鍵盤命令與Jupyter Notebook筆記本命令相結(jié)合,可以通過鍵盤不同鍵的組合運(yùn)行筆記本的命令。

  • esc鍵進(jìn)入命令模式。

  • 命令模式下,單元格邊框?yàn)榛疑?,且左?cè)邊框線為藍(lán)色粗線條。

命令模式

② 編輯模式

  • 編輯模式使用戶可以在單元格內(nèi)編輯代碼或文檔。

  • enterreturn鍵進(jìn)入編輯模式。

  • 編輯模式下,單元格邊框和左側(cè)邊框線均為綠色。

編輯模式

3. 兩種模式的快捷鍵

① 命令模式

快捷鍵 用途
F 查找和替換
? 進(jìn)入編輯模式
??F 打開命令選項(xiàng)板
??P 打開命令選項(xiàng)板
P 打開命令選項(xiàng)板
?? 運(yùn)行當(dāng)前單元格并選中下一個(gè)單元格
?? 運(yùn)行選中單元格
?? 運(yùn)行當(dāng)前單元格并且在下方插入單元格
Y 將單元格切換至code狀態(tài)
M 將單元格切換至markdown狀態(tài)
R 將單元格切換至raw狀態(tài)
1 將單元格設(shè)定一級(jí)標(biāo)題
2 將單元格設(shè)定二級(jí)標(biāo)題
3 將單元格設(shè)定三級(jí)標(biāo)題
4 將單元格設(shè)定四級(jí)標(biāo)題
5 將單元格設(shè)定五級(jí)標(biāo)題
6 將單元格設(shè)定六級(jí)標(biāo)題
選中上方單元格
K 選中上方單元格
選中下方單元格
J 選中下方單元格
?K 向上多選單元格
?↑ 向上多選單元格
?J 向下多選單元格
?↓ 向下多選單元格
A 在上方插入單元格
B 在下方插入單元格
X 剪切選中單元格
C 復(fù)制選中單元格
?V 粘貼到上方單元格
V 粘貼到下方單元格
Z 撤銷刪除
D, D 刪除選中單元格
?M 合并選中單元格,若直選中一個(gè)則與下一個(gè)單元格合并
?S 保存
S 保存
L 轉(zhuǎn)換行號(hào)
O 轉(zhuǎn)換輸出
?O 轉(zhuǎn)換滾動(dòng)輸出
H 顯示快捷鍵幫助
I, I 中斷Notebook內(nèi)核
O, O 重啟Notebook內(nèi)核
esc 關(guān)閉頁面
Q 關(guān)閉頁面
?L 轉(zhuǎn)換所有單元格行號(hào)且設(shè)置持續(xù)有效
?? 向上滾動(dòng)
? 向下滾動(dòng)

② 編輯模式

Mac快捷鍵 Windows快捷鍵 用途
? ? 代碼補(bǔ)全或縮進(jìn)
?? ?? 提示
?] ?] 向后縮進(jìn)
?[ ?[ 向前縮進(jìn)
?A ?A 全選
?Z ?Z 撤銷
?/ 注釋
?D 刪除該行內(nèi)容
?U 撤銷
?↑ ?↑ 光標(biāo)跳轉(zhuǎn)至單元格起始位置
?↓ ?↓ 光標(biāo)跳轉(zhuǎn)至單元格最終位置
?← ?← 光標(biāo)位置左移一個(gè)單詞
?→ ?→ 光標(biāo)位置右移一個(gè)單詞
?? ?? 刪除前邊一個(gè)單詞
?? ?? 刪除后邊一個(gè)單詞
??Z ?Y 重做
??U ??Z 重做
?? ?? 刪除該行光標(biāo)左邊內(nèi)容
?? ?? 刪除該行光標(biāo)右邊內(nèi)容
?M ?M 進(jìn)入命令模式
esc esc 進(jìn)入命令模式
??F 打開命令選項(xiàng)板
??P 打開命令選項(xiàng)板
?? ?? 運(yùn)行當(dāng)前單元格并選中下一個(gè)單元格
?? ?? 運(yùn)行選中單元格
?? ?? 運(yùn)行當(dāng)前單元格并且在下方插入單元格
??- ??- 以光標(biāo)所在位置分割單元格
?S ?S 保存
下移光標(biāo)
上移光標(biāo)

4. 查看和編輯快捷鍵

① 查看快捷鍵

① 進(jìn)入Jupyter Notebook主界面“File”中。

② 在“New”的下拉列表中選擇環(huán)境創(chuàng)建一個(gè)筆記本。

③ 點(diǎn)擊“Help”。

④ 點(diǎn)擊“Keyboard Shortcuts”。

② 編輯快捷鍵

⑴ 方法一

① 進(jìn)入Jupyter Notebook主界面“File”中。

② 在“New”的下拉列表中選擇環(huán)境創(chuàng)建一個(gè)筆記本。

③ 點(diǎn)擊“Help”。

④ 點(diǎn)擊“Keyboard Shortcuts”。

⑤ 彈出的對(duì)話框中“Command Mode (press Esc to enable)”旁點(diǎn)擊“Edit Shortcuts”按鈕。

⑵ 方法二

① 進(jìn)入Jupyter Notebook主界面“File”中。

② 在“New”的下拉列表中選擇環(huán)境創(chuàng)建一個(gè)筆記本。

③ 點(diǎn)擊“Help”。

④ 點(diǎn)擊“Edit Keyboard Shortcuts”。

③ 例

查看和編輯快捷鍵

八、關(guān)閉和退出

<a id=quit></a>

1. 關(guān)閉筆記本和終端

當(dāng)我們?cè)贘upyter Notebook中創(chuàng)建了終端或筆記本時(shí),將會(huì)彈出新的窗口來運(yùn)行終端或筆記本。當(dāng)我們使用完畢想要退出終端或筆記本時(shí),僅僅關(guān)閉頁面是無法結(jié)束程序運(yùn)行的,因此我們需要通過以下步驟將其完全關(guān)閉。

① 方法一

⑴ 進(jìn)入“Files”頁面。

⑵ 勾選想要關(guān)閉的“ipynb”筆記本。正在運(yùn)行的筆記本其圖標(biāo)為綠色,且后邊標(biāo)有“Running”的字樣;已經(jīng)關(guān)閉的筆記本其圖標(biāo)為灰色。

⑶ 點(diǎn)擊上方的黃色的“Shutdown”按鈕。

⑷ 成功關(guān)閉筆記本。

  • 注意:此方法只能關(guān)閉筆記本,無法關(guān)閉終端。

② 方法二

⑴ 進(jìn)入“Running”頁面。

⑵ 第一欄是“Terminals”,即所有正在運(yùn)行的終端均會(huì)在此顯示;第二欄是“Notebooks”,即所有正在運(yùn)行的“ipynb”筆記本均會(huì)在此顯示。

⑶ 點(diǎn)擊想要關(guān)閉的終端或筆記本后黃色“Shutdown”按鈕。

⑷ 成功關(guān)閉終端或筆記本。

  • 注意:此方法可以關(guān)閉任何正在運(yùn)行的終端和筆記本。

③ 注意

⑴ 只有“ipynb”筆記本和終端需要通過上述方法才能使其結(jié)束運(yùn)行。

⑵ “txt”文檔,即“New”下拉列表中的“Text File”,以及“Folder”只要關(guān)閉程序運(yùn)行的頁面即結(jié)束運(yùn)行,無需通過上述步驟關(guān)閉。

④ 演示

關(guān)閉筆記本和終端

2. 退出Jupyter Notebook程序

如果你想退出Jupyter Notebook程序,僅僅通過關(guān)閉網(wǎng)頁是無法退出的,因?yàn)楫?dāng)你打開Jupyter Notebook時(shí),其實(shí)是啟動(dòng)了它的服務(wù)器。

你可以嘗試關(guān)閉頁面,并打開新的瀏覽器頁面,把之前的地址輸進(jìn)地址欄,然后跳轉(zhuǎn)頁面,你會(huì)發(fā)現(xiàn)再次進(jìn)入了剛才“關(guān)閉”的Jupyter Notebook頁面。

如果你忘記了剛才關(guān)閉的頁面地址,可以在啟動(dòng)Jupyter Notebook的終端中找到地址,復(fù)制并粘貼至新的瀏覽器頁面的地址欄,會(huì)發(fā)現(xiàn)同樣能夠進(jìn)入剛才關(guān)閉的頁面。

因此,想要徹底退出Jupyter Notebook,需要關(guān)閉它的服務(wù)器。只需要在它啟動(dòng)的終端上按:

  • Mac用戶:control c
  • Windows用戶:ctrl c

然后在終端上會(huì)提示:“Shutdown this notebook server (y/[n])?”輸入y即可關(guān)閉服務(wù)器,這才是徹底退出了Jupyter Notebook程序。此時(shí),如果你想要通過輸入剛才關(guān)閉網(wǎng)頁的網(wǎng)址進(jìn)行訪問Jupyter Notebook便會(huì)看到報(bào)錯(cuò)頁面。

九、參考資料

1.知乎:jupyter notebook 可以做哪些事情?猴子的回答

  1. Jupyter Notebook官方介紹

  2. Anaconda官方下載頁面

  3. Python·Jupyter Notebook各種使用方法記錄

  4. Stack Overflow中有關(guān)如何隱藏/顯示輸入單元格的問題

  5. 魔術(shù)命令官方文檔

  6. Jupyter Notebook 的快捷鍵

  7. Jupyter Notebook官方文檔

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容