PyCharm 集成 Jupyter Notebook
上一節(jié)介紹了 PyCharm 在科學(xué)計算方面支持的功能,其中也提到了PyCharm 集成了 Jupyter 。本節(jié)將主要介紹如何在 PyCharm 使用 Jupyter Notebook 相關(guān)功能。
1. Jupyter Notebook
Jupyter項目是一個非盈利的開源項目,源于 2014 年的 ipython 項目,支持運行 40 多種編程語言。
Jupyter Notebook 的本質(zhì)是一個 Web 應(yīng)用程序,便于創(chuàng)建和共享程序文檔,支持實時代碼,數(shù)學(xué)方程,可視化和 markdown。 用途包括:數(shù)據(jù)清理和轉(zhuǎn)換,數(shù)值模擬,統(tǒng)計建模,機(jī)器學(xué)習(xí)等等?;谒猛镜膹V泛性, 它現(xiàn)在是非常流行的開發(fā)工具。
在 PyCharm 內(nèi), 可以輕松地編輯、執(zhí)行和調(diào)試 Jupyter Notebook 源代碼,并檢查執(zhí)行輸出,包括流數(shù)據(jù)、圖像等等。
2. 在 PyCharm 編輯 Jupyter Notebook 文件
step1: 創(chuàng)建新的 Python 項目,指定虛擬環(huán)境,并安裝 jupyter 包。
step2: 在 “Project” 工具欄的上下文菜單里選擇 New -> Jupyter Notebook
, 在彈出窗口中輸入文件名。
step3: 擴(kuò)展名為 .ipynb 文件被創(chuàng)建, 下面的編輯窗口將顯示。
step4: Jupyter 是個WEB應(yīng)用,點擊黃色燈泡按鈕,在菜單中選擇 Start Jupyter Server
。
點擊日志中的鏈接,瀏覽器顯示如下:
Jupyter Notebook 編輯頁面如下,可直接在該頁面編輯文件,具體如何使用不是本課程內(nèi)容,具體請參考Jupyter 官方文檔。
step5: 回到PyCharm編輯文件。Notebook file 是由一個個cell構(gòu)成的,有三種類型 code、raw 與markdown cell。(cell: 一對In Out會話被視作一個代碼單元, 每個代碼單元可以單獨執(zhí)行)
Tips: 在編輯Python Code Cell 時,相應(yīng)的代碼補全,語法高亮顯示,錯誤信息提示及快速修復(fù)等等功能與編輯標(biāo)準(zhǔn)的Python文件一樣都是支持的。
編輯完成以后,我們刷新一下對應(yīng)的瀏覽器頁面,PyCharm 內(nèi)編輯的內(nèi)容已經(jīng)同步更新了。
3. 運行與調(diào)試 Code Cell
3.1 運行 Code Cell
文件創(chuàng)建完成以后,在 PyCharm 里可以直接運行了。PyCharm 提供了多種運行方式,既可以單獨運行一個 Cell, 也可以一次全部運行。不僅可以在同一頁面查看運行結(jié)果,還可以查看變量詳情。
此時,我們刷新一下對應(yīng)的瀏覽器頁面,運行 Cell 生成的圖表也顯示出來了。
除此以外, 點擊工具欄中 黃色燈泡圖標(biāo),在菜單中選擇其它的運行方式:
- Run Cell:執(zhí)行當(dāng)前 Cell;
- Run All Above:執(zhí)行當(dāng)前與當(dāng)前 Cell 上面的所有 Cell;
- Run All Below:執(zhí)行當(dāng)前與當(dāng)前 Cell 后面的所有 Cell;
- Run Cell and Select Below:執(zhí)行當(dāng)前Cell, 并導(dǎo)航到下一個Cell;
- Debug Cell:開始調(diào)試Cell。
Tips: 如果想清除預(yù)覽窗口中所有輸出,請點擊上面的菜單中的
Clear Outputs
。
在執(zhí)行過程中,要注意 Cell 之間的依賴關(guān)系,比如當(dāng)前 Cell 代碼調(diào)用了前一個 Cell 的變量,在執(zhí)行當(dāng)前Cell 以前,要先執(zhí)行前面的Cell, 否則會報錯。
3.2 調(diào)試
在 Code Cell 中設(shè)置斷點,點擊綠色箭頭圖標(biāo),然后選擇"Debug Cell"。過程與調(diào)試標(biāo)準(zhǔn)的Python 是沒實質(zhì)性區(qū)別的。
Tips: 如果 當(dāng)前 Cell 從任何其它 Cell 調(diào)用函數(shù),至少要保證函數(shù)所在的 Cell 是被 Run過的,如果想單步執(zhí)行該函數(shù), 需要函數(shù)所在的Cell 是被 Debug 過,而不僅僅是 Run 過,這樣函數(shù)內(nèi)相關(guān)的斷點才工作。
4. Jupyter Server 管理
4. 1 啟動與關(guān)閉服務(wù)
前面提到通過點擊工具欄 黃色燈泡 圖標(biāo),在彈出菜單中選擇 Start Jupyter Server
啟動服務(wù)。實際上要運行 Jupyter 服務(wù)器,只需執(zhí)行任何 Cell 就可以了。當(dāng)啟動 Cell 執(zhí)行時,PyCharm 使用任何可用端口(默認(rèn) 8888 端口)在本地主機(jī)上啟動 Jupyter 服務(wù)器。Jupyter 工具窗口會自動打開。
Tips: 可以通過 Jupyter 工具窗口中的停止按鈕關(guān)閉服務(wù),也可以點擊工具欄 黃色燈泡 圖標(biāo),在彈出菜單中選擇 Stop Jupyter Server
。
4.2 配置 Server
當(dāng)啟動任何托管服務(wù)器時,默認(rèn)情況下它使用當(dāng)前項目解釋器和自動選擇的端口。實際上可以選擇 PyCharm 實例中可用的任何其他解釋器,并指定備用端口。也可以使用其它已知 jupyter 服務(wù)器的 URL 和 Token,連接到該服務(wù)器。
step1: 在 Jupyter 服務(wù)器列表中選擇"Configure Jupyter Server", 打開服務(wù)器設(shè)置。
step2: 配置服務(wù)器
要自定義默認(rèn)的 Jupyter 服務(wù)器,請在 Jupyter 服務(wù)器對話框中選擇 Use Managed Server (托管服務(wù)器),從 Python 解釋器列表中選擇任何本地 Python 解釋器。
更改自動檢測到的端口,在"port"字段中鍵入其編號。
除此以外,也可以連接到任何正在運行的 Jupyter 服務(wù)器,請在 Jupyter 服務(wù)器對話框中選擇"Configured Server"并指定服務(wù)器的路徑,比如: 在本地命令行終端啟動一個 Jupyter server 。
拷貝上面的鏈接到下面的輸入框中,包括 url 與 token。
step3: 點擊 ok, 然后,切換到配置的服務(wù)器,在工具欄中的服務(wù)器列表中選擇"Switch to current Jupyter Server"。
step4: 執(zhí)行代碼后, 可能會遇到下面的信息“新配置的服務(wù)器的內(nèi)核與當(dāng)前項目解釋器不匹配”
單擊相應(yīng)的鏈接Register project interpreter as kernel(將項目解釋器注冊為配置服務(wù)器上的內(nèi)核)。然后可以在配置的服務(wù)器的內(nèi)核列表中看到它,就可以正常運行 Cell 了。
5. 共享 Jupyter Notebooks
PyCharm 通過 Datalore Plugin 實現(xiàn)對 Jupyter Notebooks 的共享。Datalore 是用于數(shù)據(jù)分析的智能 Web 應(yīng)用程序。
step1: 共享 Notebook, 需要上傳文件到 Datalore, 點擊工具欄上的 “Upload to Jetbrain Datalore” 按鈕。
step2: 如果第一次訪問 Datalore,系統(tǒng)將要求登錄 Datalore 應(yīng)用程序。
step3: 點擊 Continue, 使用Datalore 帳戶登錄, 也可以使用Google 帳戶或者Jetbrain 帳戶登錄。
Tips: 有時候申請 Datalore 新帳戶會長時間收不到驗證郵件,這時可以申請JetBrains 帳戶,然后用該帳戶登錄。
step4: Datalore 會顯示為你的帳戶生成的 API Token。單擊"Confirm"繼續(xù)
Tips: 上面的 Token 是保存在
PyCharm/File -> Preference/Settings -> Tools -> Datalore,
隨時都可以注銷,注銷后再需要上傳文件需要重新登錄。
step5:確認(rèn) token 信息后,會顯示 Upload Notebook 窗口:
step6: 上傳成功后,你會在你的 Datalore 帳戶下看到上傳的文件, 打開它。
step7:在打開頁面點擊 Share 按鈕,生成共享鏈接,其它人就可以通過這個鏈接訪問上傳的
Notebook file 了。
step8:回到 PyCharm 編輯器,再次點擊工具欄上的 “Upload to Jetbrain Datalore” 按鈕。會出現(xiàn)帶有下面4個選項的菜單。如果不想共享文件了,也可以點擊 Manage Access Rights 修改訪問權(quán)限
在"Share Settings “對話框中,單擊"關(guān)閉公共鏈接共享” 就可以關(guān)閉共享了。
6. 小結(jié)
本節(jié)主要講述在 PyCharm 里如何編輯、運行與調(diào)試,以及共享 Jupyter Notebook 文件,為了更好應(yīng)用相關(guān)的功能,需要對 Jupyter 與 Datalore 這些軟件多一些了解,建議多看一下官方文檔。