Jupyter Notebook 介紹 安裝和使用技巧

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

原文連接:https://www.jianshu.com/p/91365f343585javascript

 

目錄1、什麼是Jupyter Notebook?

1. 簡介

Jupyter Notebook是基於網頁的用於交互計算的應用程序。其可被應用於全過程計算:開發、文檔編寫、運行代碼和展現結果。——Jupyter Notebook官方介紹html

簡而言之,Jupyter Notebook是以網頁的形式打開,能夠在網頁頁面中直接編寫代碼和運行代碼,代碼的運行結果也會直接在代碼塊下顯示。如在編程過程當中須要編寫說明文檔,可在同一個頁面中直接編寫,便於做及時的說明和解釋。java

2. 組成部分

① 網頁應用

網頁應用即基於網頁形式的、結合了編寫說明文檔、數學公式、交互計算和其餘富媒體形式的工具。簡言之,網頁應用是能夠實現各類功能的工具。python

② 文檔

即Jupyter Notebook中全部交互計算、編寫說明文檔、數學公式、圖片以及其餘富媒體形式的輸入和輸出,都是以文檔的形式體現的。git

這些文檔是保存爲後綴名爲.ipynbJSON格式文件,不只便於版本控制,也方便與他人共享。github

此外,文檔還能夠導出爲:HTML、LaTeX、PDF等格式。shell

3. Jupyter Notebook的主要特色

  1. 編程時具備語法高亮縮進tab補全的功能。macos

  2. 可直接經過瀏覽器運行代碼,同時在代碼塊下方展現運行結果。編程

  3. 以富媒體格式展現計算結果。富媒體格式包括:HTML,LaTeX,PNG,SVG等。vim

  4. 對代碼編寫說明文檔或語句時,支持Markdown語法。

  5. 支持使用LaTeX編寫數學性說明。

2、安裝Jupyter Notebook

0. 先試用,再決定

若是看了以上對Jupyter Notebook的介紹你仍是拿不定主意到底是否適合你,那麼不要擔憂,你能夠先免安裝試用體驗一下,戳這裏,而後再作決定。

值得注意的是,官方提供的同時試用是有限的,若是你點擊連接以後進入的頁面以下圖所示,那麼不要着急,過會兒再試試看吧。


 
試用失敗

若是你足夠幸運,那麼你將看到以下界面,就能夠開始體驗啦。

主界面


 

 

試用成功

編輯頁面


 

編輯頁面

1. 安裝

① 安裝前提

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

② 使用Anaconda安裝

若是你是小白,那麼建議你經過安裝Anaconda來解決Jupyter Notebook的安裝問題,由於Anaconda已經自動爲你安裝了Jupter Notebook及其餘工具,還有python中超過180個科學包及其依賴項。

你能夠經過進入Anaconda的官方下載頁面自行選擇下載;若是你對閱讀英文文檔感到頭痛,或者對安裝步驟一無所知,甚至也想快速瞭解一下什麼是Anaconda,那麼能夠前往個人另外一篇文章Anaconda介紹、安裝及使用教程。你想要的,都在裏面!

常規來講,安裝了Anaconda發行版時已經自動爲你安裝了Jupyter Notebook的,但若是沒有自動安裝,那麼就在終端(Linux或macOS的「終端」,Windows的「Anaconda Prompt」,如下均簡稱「終端」)中輸入如下命令安裝:

conda install jupyter notebook

③ 使用pip命令安裝

若是你是有經驗的Python玩家,想要嘗試用pip命令來安裝Jupyter Notebook,那麼請看如下步驟吧!接下來的命令都輸入在終端當中的噢!

  1. 把pip升級到最新版本

    • Python 3.x
    pip3 install --upgrade pip
    • Python 2.x
    pip install --upgrade pip
  • 注意:老版本的pip在安裝Jupyter Notebook過程當中或面臨依賴項沒法同步安裝的問題。所以強烈建議先把pip升級到最新版本。
  1. 安裝Jupyter Notebook

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

3、運行Jupyter Notebook

0. 幫助

若是你有任何jupyter notebook命令的疑問,能夠考慮查看官方幫助文檔,命令以下:

jupyter notebook --help

jupyter notebook -h

1. 啓動

① 默認端口啓動

在終端中輸入如下命令:

jupyter notebook

執行命令以後,在終端中將會顯示一系列notebook的服務器信息,同時瀏覽器將會自動啓動Jupyter Notebook。

啓動過程當中終端顯示內容以下:

$ 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的全部操做,都請保持終端不要關閉,由於一旦關閉終端,就會斷開與本地服務器的連接,你將沒法在Jupyter Notebook中進行其餘操做啦。

瀏覽器地址欄中默認地將會顯示:http://localhost:8888。其中,「localhost」指的是本機,「8888」則是端口號。

 
URL

 

若是你同時啓動了多個Jupyter Notebook,因爲默認端口「8888」被佔用,所以地址欄中的數字將從「8888」起,每多啓動一個Jupyter Notebook數字就加1,如「8889」、「8890」……

② 指定端口啓動

若是你想自定義端口號來啓動Jupyter Notebook,能夠在終端中輸入如下命令:

jupyter notebook --port <port_number>

其中,「<port_number>」是自定義端口號,直接以數字的形式寫在命令當中,數字兩邊不加尖括號「<>」。如:jupyter notebook --port 9999,即在端口號爲「9999」的服務器啓動Jupyter Notebook。

③ 啓動服務器但不打開瀏覽器

若是你只是想啓動Jupyter Notebook的服務器但不打算馬上進入到主頁面,那麼就無需馬上啓動瀏覽器。在終端中輸入:

jupyter notebook --no-browser

此時,將會在終端顯示啓動的服務器信息,並在服務器啓動以後,顯示出打開瀏覽器頁面的連接。當你須要啓動瀏覽器頁面時,只須要複製連接,並粘貼在瀏覽器的地址欄中,輕按回車變轉到了你的Jupyter Notebook頁面。

 
 
no_browser

例圖中因爲在完成上面內容時我同時啓動了多個Jupyter Notebook,所以顯示個人「8888」端口號被佔用,最終分配給個人是「8889」。

2. 主頁面

① 主頁面內容

當執行完啓動命令以後,瀏覽器將會進入到Notebook的主頁面,以下圖所示。


 
Notebook Dashboard

若是你的主頁面裏邊的文件夾跟個人不一樣,或者你在疑惑爲何首次啓動裏邊就已經有這麼多文件夾,不要擔憂,這裏邊的文件夾全都是你的家目錄裏的目錄文件。你能夠在終端中執行如下2步來查看:

cdcd -cd ~cd /Users/<user_name>

  • 這個命令將會進入你的家目錄。

  • 「<user_name>」 是用戶名。用戶名兩邊不加尖括號「<>」。

ls

  • 這個命令將會展現你家目錄下的文件。

② 設置Jupyter Notebook文件存放位置

若是你不想把從此在Jupyter Notebook中編寫的全部文檔都直接保存在家目錄下,那你須要修改Jupyter Notebook的文件存放路徑。

⑴ 建立文件夾/目錄

  • Windows用戶在想要存放Jupyter Notebook文件的磁盤新建文件夾併爲該文件夾命名;雙擊進入該文件夾,而後複製地址欄中的路徑。

  • Linux/macOS用戶在想要存放Jupyter Notebook文件的位置建立目錄併爲目錄命名,命令爲:mkdir <directory_name>;進入目錄,命令爲:cd <directory_name>;查看目錄的路徑,命令爲:pwd;複製該路徑。

  • 注意:「<directory_name>」是自定義的目錄名。目錄名兩邊不加尖括號「<>」。

⑵ 配置文件路徑

  • 一個便捷獲取配置文件所在路徑的命令:
jupyter notebook --generate-config
  • 注意: 這條命令雖然能夠用於查看配置文件所在的路徑,但主要用途是是否將這個路徑下的配置文件替換默認配置文件
    若是你是第一次查詢,那麼或許不會出現下圖的提示;若文件已經存在或被修改,使用這個命令以後會出現詢問「Overwrite /Users/raxxie/.jupyter/jupyter_notebook_config.py with default config? [y/N]」,即「用默認配置文件覆蓋此路徑下的文件嗎?」,若是按「y」,則完成覆蓋,那麼以前所作的修改都將失效;若是隻是爲了查詢路徑,那麼必定要輸入「N」。
 
 
命令

常規的狀況下,Windows和Linux/macOS的配置文件所在路徑和配置文件名以下所述:

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

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

  • 配置文件名:jupyter_notebook_config.py

  • 注意:

① 「<user_name>」爲你的用戶名。用戶名兩邊不加尖括號「<>」。

② Windows和Linux/macOS系統的配置文件存放路徑實際上是相同的,只是系統不一樣,表現形式有所不一樣而已。

③ Windows和Linux/macOS系統的配置文件也是相同的。文件名以「.py」結尾,是Python的可執行文件。

④ 若是你不是經過一步到位的方式前往配置文件所在位置,而是一層一層進入文件夾/目錄的,那麼當你進入家目錄後,用ls命令會發現找不到「.jupyter」文件夾/目錄。這是由於凡是以「.」開頭的目錄都是隱藏文件,你能夠經過ls -a命令查看當前位置下全部的隱藏文件。

⑶ 修改配置文件

  • Windows系統的用戶可使用文檔編輯工具或IDE打開「jupyter_notebook_config.py」文件並進行編輯。經常使用的文檔編輯工具和IDE有記事本、Notepad++、vim、Sublime Text、PyCharm等。其中,vim是沒有圖形界面的,是一款學習曲線較爲陡峭的編輯器,其餘工具在此不作使用說明,由於上手相對簡單。經過vim修改配置文件的方法請繼續往下閱讀。

  • Linux/macOS系統的用戶建議直接經過終端調用vim來對配置文件進行修改。具體操做步驟以下:

⒜ 打開配置文件

打開終端,輸入命令:

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

執行上述命令後便進入到配置文件當中了。

⒝ 查找關鍵詞

進入配置文件後查找關鍵詞「c.NotebookApp.notebook_dir」。查找方法以下:

進入配置文件後不要按其餘鍵,用英文半角直接輸入/c.NotebookApp.notebook_dir,這時搜索的關鍵詞已在文檔中高亮顯示了,按回車,光標從底部切換到文檔正文中被查找關鍵詞的首字母。

⒞ 編輯配置文件

小寫i進入編輯模式,底部出現「--INSERT--」說明成功進入編輯模式。使用方向鍵把光標定位在第二個單引號上(光標定位在哪一個字符,就在這個字符前開始輸入),把「⑴ 建立文件夾/目錄」步驟中複製的路徑粘貼在此處。

⒟ 取消註釋

把該行行首的井號(#)刪除。由於配置文件是Python的可執行文件,在Python中,井號(#)表示註釋,即在編譯過程當中不會執行該行命令,因此爲了使修改生效,須要刪除井號(#)。

config

 

⒠ 保存配置文件

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

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

注意:

  • 冒號(:) 必定要有,且也是英文半角
  • w:保存。
  • q:退出。
⒡ 驗證

在終端中輸入命令jupyter notebook打開Jupyter Notebook,此時你會看到一個清爽的界面,恭喜!

 

modified

 

⒢ 注意
  • 以上全部命令均以英文半角格式輸入,如有報錯,請嚴格檢查這兩個條件,英文半角

  • 這裏僅介紹了vim編輯器修改配置文件的方法,沒有對vim編輯器的詳細使用進行講解,因此無需瞭解vim編輯器的具體使用方法,只須要按照上述步驟必定能夠順利完成修改!

  • 推薦有時間和經歷時學習一下vim編輯器的使用。這款強大的編輯器將會成爲你將來工做中的利器。

4、Jupyter Notebook的基本使用

1. Files頁面

 

Files頁面

此時你的界面當中應該尚未「Conda」和「Nbextensions」類目。不要着急,這兩個類目將分別在「5、拓展功能」中的「1.關聯Jupyter Notebook和conda的環境和包——‘nb_conda’」和「2.Markdown生成目錄」中安裝。

Files頁面是用於管理和建立文件相關的類目。

對於現有的文件,能夠經過勾選文件的方式,對選中文件進行復制、重命名、移動、下載、查看、編輯和刪除的操做。

同時,也能夠根據須要,在「New」下拉列表中選擇想要建立文件的環境,進行建立「ipynb」格式的筆記本、「txt」格式的文檔、終端或文件夾。若是你建立的環境沒有在下拉列表中顯示,那麼你須要依次前往「5、拓展功能」中的「1.關聯Jupyter Notebook和conda的環境和包——‘nb_conda’」和「6、增長內核——‘ipykernel’」中解決該問題。

① 筆記本的基本操做

 

 
筆記本的使用

上圖展現的是筆記本的基本結構和功能。根據圖中的註解已經能夠解決絕大多數的使用問題了!

工具欄的使用如圖中的註解同樣直觀,在此不過多解釋。須要特別說明的是「單元格的狀態」,有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」。更多關閉方法能夠查閱「8、關閉和退出」中的「1.關閉筆記本和終端

 
Running

3. Clusters頁面

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

Clusters類目如今已由IPython parallel對接,且因爲現階段使用頻率較低,所以在此不作詳細說明,想要了解更多能夠訪問IPython parallel的官方網站

4. Conda頁面

Conda頁面主要是Jupyter Notebook與Conda關聯以後對Conda環境和包進行直接操做和管理的頁面工具。詳細信息請直接查閱「5、拓展功能」中的「1.關聯Jupyter Notebook和conda的環境和包——‘nb_conda’」。這是目前使用Jupyter Notebook的必備環節,所以請務必查閱。

5. Nbextensions頁面

 
nbextensions

Nbextensions頁面提供了多個Jupyter Notebook的插件,使其功能更增強大。該頁面中主要使用的插件有nb_conda,nb_present,Table of Contents(2)。這些功能咱們無需徹底掌握,也無需安裝全部的擴展功能,根據本文檔提供的學習思路,咱們只須要安裝Talbe of Contents(2)便可,該功能可爲Markdown文檔提供目錄導航,便於咱們編寫文檔。該安裝指導請查閱「5、拓展功能」中的「2.Markdown生成目錄」。

5、拓展功能

<a id=conda></a>

1. 關聯Jupyter Notebook和conda的環境和包——「nb_conda」☆

① 安裝

conda install nb_conda

執行上述命令可以將你conda建立的環境與Jupyter Notebook相關聯,便於你在Jupyter Notebook的使用中,在不一樣的環境下建立筆記本進行工做。

② 使用

  • 能夠在Conda類目下對conda環境和包進行一系列操做。

    conda類目
  • 能夠在筆記本內的「Kernel」類目裏的「Change kernel」切換內核。


     
    切換內核

③ 卸載

canda remove nb_conda

執行上述命令便可卸載nb_conda包。

<a id=nbextensions></a>

2. Markdown生成目錄

  • 不一樣於有道雲筆記的Markdown編譯器,Jupyter Notebook沒法爲Markdown文檔經過特定語法添加目錄,所以須要經過安裝擴展來實現目錄的添加。
conda install -c conda-forge jupyter_contrib_nbextensions
  • 執行上述命令後,啓動Jupyter Notebook,你會發現導航欄多了「Nbextensions」的類目,點擊「Nbextensions」,勾選「Table of Contents ⑵」


     
    nbextensions
  • 以後再在Jupyter Notebook中使用Markdown,點擊下圖的圖標便可使用啦。

  • 添加目錄

3. Markdown在文中設置連接並定位

在使用Markdown編輯文檔時,不免會遇到須要在文中設定連接,定位在文檔中的其餘位置便於查看。由於Markdown能夠完美的兼容html語法,所以這種功能能夠經過html語法當中「a標籤」的索引用法來實現。

語法格式以下:

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

    1. 語法格式當中全部的符號均是英文半角
    2. 「自定義索引詞」最好是英文,較長的詞能夠用下劃線鏈接。
    3. 「a標籤」出如今想要被跳轉到的文章位置,html標籤除了單標籤外均要符合「有頭(<a>)必有尾(</a>)」的原則。頭尾之間的「跳轉提示」是無關緊要的。
    4. 「a標籤」中的「id」值便是爲正文中添加連接時設定的「自定義索引值」,這裏經過「id」的值實現從正文的連接跳轉至指定位置的功能。
  • 例:

    1. 有跳轉提示語

       
      有提示語
    2. 無跳轉提示語

       
      無提示語

4. 加載指定網頁源代碼

① 使用場景

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

② 方法

執行如下命令:

%load URL

其中,URL爲指定網站的地址。

③ 例

 
加載指定網站源代碼

5. 加載本地Python文件

① 使用場景

想在Jupyter Notebook中加載本地的Python文件並執行文件代碼。

② 方法

執行如下命令:

%load Python文件的絕對路徑

③ 注意

  1. Python文件的後綴爲「.py」。
  2. 「%load」後跟的是Python文件的絕對路徑
  3. 輸入命令後,能夠按CTRL 回車來執行命令。第一次執行,是將本地的Python文件內容加載到單元格內。此時,Jupyter Notebook會自動將「%load」命令註釋掉(即在前邊加井號「#」),以便在執行已加載的文件代碼時不重複執行該命令;第二次執行,則是執行已加載文件的代碼。

④ 例

加載本地Python文件

6. 直接運行本地Python文件

① 使用場景

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

② 方法

執行命令:

%run Python文件的絕對路徑

!python3 Python文件的絕對路徑

!python Python文件的絕對路徑

③ 注意

  1. Python文件的後綴爲「.py」。
  2. 「%run」後跟的是Python文件的絕對路徑
  3. 「!python3」用於執行Python 3.x版本的代碼。
  4. 「!python」用於執行Python 2.x版本的代碼。
  5. 「!python3」和「!python」屬於 !shell命令 語法的使用,即在Jupyter Notebook中執行shell命令的語法。
  6. 輸入命令後,能夠按 CTRL 回車 來執行命令,執行過程當中將不顯示本地Python文件的內容,直接顯示運行結果。

④ 例

直接運行Python文件

7. 在Jupyter Notebook中獲取當前位置

① 使用場景

想要在Jupyter Notebook中獲取當前所在位置的絕對路徑

② 方法

%pwd

!pwd

③ 注意

  1. 獲取的位置是當前Jupyter Notebook中建立的筆記本所在位置,且該位置爲絕對路徑
  2. 「!pwd」屬於 !shell命令 語法的使用,即在Jupyter Notebook中執行shell命令的語法。

④ 例

獲取當前路徑

8. 在Jupyter Notebook使用shell命令

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

⑴ 語法

!shell命令
  • 在Jupyter Notebook中的筆記本單元格中用英文感嘆號「!」後接shell命令便可執行shell命令。

⑵ 例

shell命令

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

⑴ 啓動方法

在Jupyter Notebook主界面,即「File」界面中點擊「New」;在「New」下拉框中點擊「Terminal」即新建了終端。此時終端位置是在你的家目錄,能夠經過pwd命令查詢當前所在位置的絕對路徑。

⑵ 關閉方法

在Jupyter Notebook的「Running」界面中的「Terminals」類目中能夠看到正在運行的終端,點擊後邊的「Shutdown」便可關閉終端。

⑶ 例

 
終端

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

① 使用場景

在Jupyter Notebook的筆記本中不管是編寫文檔仍是編程,都有輸入(In [])和輸出(Out [])。當咱們編寫的代碼或文檔使用的單元格較多時,有時咱們只想關注輸出的內容而暫時不看輸入的內容,這時就須要隱藏輸入單元格而只顯示輸出單元格。

② 方法一

⑴ 代碼

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)

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

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

在筆記本第一個單元格中輸入以上代碼,而後執行,便可在該文檔中使用「隱藏/顯示」輸入單元格功能。

  • 缺陷:此方法不能很好的適用於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>''')

在筆記本第一個單元格中輸入以上代碼,而後執行,便可在該文檔中使用「隱藏/顯示」輸入單元格功能。

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

⑵ 例

 
隱藏/顯示方法二

10. 魔術命令

因爲目前暫時用不到過多的魔術命令,所以暫時先參考官網的文檔

<a id=ipykernel></a>

6、增長內核——「ipykernel」 ☆

1. 使用場景

  1. 場景一:同時用不一樣版本的Python進行工做,在Jupyter Notebook中沒法切換,即「New」的下拉菜單中沒法使用須要的環境。

  2. 場景二:建立了不一樣的虛擬環境(或許具備相同的Python版本但安裝的包不一樣),在Jupyter Notebook中沒法切換,即「New」的下拉菜單中沒法使用須要的環境。

接下來將分別用「命令行模式」和「圖形界面模式」來解決以上兩個場景的問題。顧名思義,「命令行模式」即在終端中經過執行命令來一步步解決問題;「圖形界面模式」則是經過在Jupyter Notebook的網頁中經過鼠標點擊的方式解決上述問題。

其中,「圖形界面模式」的解決方法相對比較簡單快捷,若是對於急於解決問題,不須要知道運行原理的朋友,能夠直接進入「3. 解決方法之圖形界面模式」來閱讀。

「命令行模式」看似比較複雜,且又劃分了使用場景,但經過這種方式來解決問題能夠更好的瞭解其中的工做原理,好比,每進行一步操做對應的命令是什麼,而命令的執行是爲了達到什麼樣的目的,這些可能都被封裝在圖形界面上的一個點擊動做來完成了。對於想更深刻了解其運做過程的朋友,能夠接着向下閱讀。

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

① 同時使用不一樣版本的Python

⑴ 在Python 3中建立Python 2內核

⒜ pip安裝
  • 首先安裝Python 2的ipykernel包。
python2 -m pip install ipykernel
  • 再爲當前用戶安裝Python 2的內核(ipykernel)。
python2 -m ipykernel install --user
  • 注意:「--user」參數的意思是針對當前用戶安裝,而非系統範圍內安裝。
⒝ conda安裝
  • 首先建立Python版本爲2.x且具備ipykernel的新環境,其中「<env_name>」爲自定義環境名,環境名兩邊不加尖括號「<>」。
conda create -n <env_name> python=2 ipykernel
  • 而後切換至新建立的環境。
Windows: activate <env_name>
Linux/macOS: source activate <env_name>
  • 當前用戶安裝Python 2的內核(ipykernel)。
python2 -m ipykernel install --user
  • 注意:「--user」參數的意思是針對當前用戶安裝,而非系統範圍內安裝。

⑵ 在Python 2中建立Python 3內核

⒜ pip安裝
  • 首先安裝Python 3的ipykernel包。
python3 -m pip install ipykernel
  • 再爲當前用戶安裝Python 2的內核(ipykernel)。
python3 -m ipykernel install --user
  • 注意:「--user」參數的意思是針對當前用戶安裝,而非系統範圍內安裝。
⒝ 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>
  • 當前用戶安裝Python 3的內核(ipykernel)。
python3 -m ipykernel install --user
  • 注意:「--user」參數的意思是針對當前用戶安裝,而非系統範圍內安裝。

② 爲不一樣環境建立內核

⑴ 切換至需安裝內核的環境

Windows: activate <env_name>
Linux/macOS: source activate <env_name>
  • 注意:「<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中切換環境,在不一樣的環境中建立筆記本進行工做和學習啦!

<a id=gui></a>

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

① 你建立了一個新的環境,但卻發如今Jupyter Notebook的「New」中找不到這個環境,沒法在該環境中建立筆記本。


 
圖形界面_問題

② 進入Jupyter Notebook → Conda → 在「Conda environment」中點擊你要添加ipykernel包的環境 → 左下方搜索框輸入「ipykernel」 → 勾選「ipykernel」 → 點擊搜索框旁的「→」箭頭 → 安裝完畢 → 右下方框內找到「ipykernel」說明已經安裝成功。

 
圖形界面_解決

③ 在終端CTRL C關閉Jupyter Notebook的服務器而後重啓Jupyter Notebook,在「File」的「New」的下拉列表裏就能夠找到你的環境啦。

 
圖形界面_驗證

7、Jupyter Notebook快捷鍵

1. Mac與Windows特殊按鍵對照表

符號 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筆記本命令相結合,能夠經過鍵盤不一樣鍵的組合運行筆記本的命令。

  • esc鍵進入命令模式。

  • 命令模式下,單元格邊框爲灰色,且左側邊框線爲藍色粗線條。

 
命令模式

② 編輯模式

  • 編輯模式使用戶能夠在單元格內編輯代碼或文檔。

  • enterreturn鍵進入編輯模式。

  • 編輯模式下,單元格邊框和左側邊框線均爲綠色。

 
編輯模式

3. 兩種模式的快捷鍵

① 命令模式

快捷鍵 用途
F 查找和替換
進入編輯模式
⌘⇧F 打開命令選項板
⌘⇧P 打開命令選項板
P 打開命令選項板
⇧↩ 運行當前單元格並選中下一個單元格
⌃↩ 運行選中單元格
⌥↩ 運行當前單元格而且在下方插入單元格
Y 將單元格切換至code狀態
M 將單元格切換至markdown狀態
R 將單元格切換至raw狀態
1 將單元格設定一級標題
2 將單元格設定二級標題
3 將單元格設定三級標題
4 將單元格設定四級標題
5 將單元格設定五級標題
6 將單元格設定六級標題
選中上方單元格
K 選中上方單元格
選中下方單元格
J 選中下方單元格
⇧K 向上多選單元格
⇧↑ 向上多選單元格
⇧J 向下多選單元格
⇧↓ 向下多選單元格
A 在上方插入單元格
B 在下方插入單元格
X 剪切選中單元格
C 複製選中單元格
⇧V 粘貼到上方單元格
V 粘貼到下方單元格
Z 撤銷刪除
D, D 刪除選中單元格
⇧M 合併選中單元格,若直選中一個則與下一個單元格合併
⌘S 保存
S 保存
L 轉換行號
O 轉換輸出
⇧O 轉換滾動輸出
H 顯示快捷鍵幫助
I, I 中斷Notebook內核
O, O 重啓Notebook內核
esc 關閉頁面
Q 關閉頁面
⇧L 轉換全部單元格行號且設置持續有效
⇧␣ 向上滾動
向下滾動

② 編輯模式

Mac快捷鍵 Windows快捷鍵 用途
代碼補全或縮進
⇧⇥ ⇧⇥ 提示
⌘] ⌃] 向後縮進
⌘[ ⌃[ 向前縮進
⌘A ⌃A 全選
⌘Z ⌃Z 撤銷
⌘/   註釋
⌘D   刪除該行內容
⌘U   撤銷
⌘↑ ⌃↑ 光標跳轉至單元格起始位置
⌘↓ ⌃↓ 光標跳轉至單元格最終位置
⌥← ⌃← 光標位置左移一個單詞
⌥→ ⌃→ 光標位置右移一個單詞
⌥⌫ ⌃⌫ 刪除前邊一個單詞
⌥⌦ ⌃⌦ 刪除後邊一個單詞
⌘⇧Z ⌃Y 重作
⌘⇧U ⌃⇧Z 重作
⌘⌫ ⌃⌫ 刪除該行光標左邊內容
⌘⌦ ⌃⌦ 刪除該行光標右邊內容
⌃M ⌃M 進入命令模式
esc esc 進入命令模式
⌘⇧F   打開命令選項板
⌘⇧P   打開命令選項板
⇧↩ ⇧↩ 運行當前單元格並選中下一個單元格
⌃↩ ⌃↩ 運行選中單元格
⌥↩ ⌥↩ 運行當前單元格而且在下方插入單元格
⌃⇧- ⌃⇧- 以光標所在位置分割單元格
⌘S ⌃S 保存
下移光標
上移光標

4. 查看和編輯快捷鍵

① 查看快捷鍵

① 進入Jupyter Notebook主界面「File」中。

② 在「New」的下拉列表中選擇環境建立一個筆記本。

③ 點擊「Help」。

④ 點擊「Keyboard Shortcuts」。

② 編輯快捷鍵

⑴ 方法一

① 進入Jupyter Notebook主界面「File」中。

② 在「New」的下拉列表中選擇環境建立一個筆記本。

③ 點擊「Help」。

④ 點擊「Keyboard Shortcuts」。

⑤ 彈出的對話框中「Command Mode (press Esc to enable)」旁點擊「Edit Shortcuts」按鈕。

⑵ 方法二

① 進入Jupyter Notebook主界面「File」中。

② 在「New」的下拉列表中選擇環境建立一個筆記本。

③ 點擊「Help」。

④ 點擊「Edit Keyboard Shortcuts」。

③ 例

 
查看和編輯快捷鍵

8、關閉和退出

<a id=quit></a>

1. 關閉筆記本和終端

當咱們在Jupyter Notebook中建立了終端或筆記本時,將會彈出新的窗口來運行終端或筆記本。當咱們使用完畢想要退出終端或筆記本時,僅僅關閉頁面是沒法結束程序運行的,所以咱們須要經過如下步驟將其徹底關閉。

① 方法一

⑴ 進入「Files」頁面。

⑵ 勾選想要關閉的「ipynb」筆記本。正在運行的筆記本其圖標爲綠色,且後邊標有「Running」的字樣;已經關閉的筆記本其圖標爲灰色。

⑶ 點擊上方的黃色的「Shutdown」按鈕。

⑷ 成功關閉筆記本。

  • 注意:此方法只能關閉筆記本,沒法關閉終端。

② 方法二

⑴ 進入「Running」頁面。

⑵ 第一欄是「Terminals」,即全部正在運行的終端均會在此顯示;第二欄是「Notebooks」,即全部正在運行的「ipynb」筆記本均會在此顯示。

⑶ 點擊想要關閉的終端或筆記本後黃色「Shutdown」按鈕。

⑷ 成功關閉終端或筆記本。

  • 注意:此方法能夠關閉任何正在運行的終端和筆記本。

③ 注意

⑴ 只有「ipynb」筆記本和終端須要經過上述方法才能使其結束運行。

⑵ 「txt」文檔,即「New」下拉列表中的「Text File」,以及「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便會看到報錯頁面。

9、參考資料

1.知乎:jupyter notebook 能夠作哪些事情?猴子的回答

  1. Jupyter Notebook官方介紹

  2. Anaconda官方下載頁面

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

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

  5. 魔術命令官方文檔

  6. Jupyter Notebook 的快捷鍵

  7. Jupyter Notebook官方文檔

相關文章
相關標籤/搜索