PyCharm 集成 Jupyter Notebook
上一節(jié)介紹了 PyCharm 在科學(xué)計(jì)算方面支持的功能,其中也提到了PyCharm 集成了 Jupyter 。本節(jié)將主要介紹如何在 PyCharm 使用 Jupyter Notebook 相關(guān)功能。
1. Jupyter Notebook
Jupyter項(xiàng)目是一個(gè)非盈利的開(kāi)源項(xiàng)目,源于 2014 年的 ipython 項(xiàng)目,支持運(yùn)行 40 多種編程語(yǔ)言。
Jupyter Notebook 的本質(zhì)是一個(gè) Web 應(yīng)用程序,便于創(chuàng)建和共享程序文檔,支持實(shí)時(shí)代碼,數(shù)學(xué)方程,可視化和 markdown。 用途包括:數(shù)據(jù)清理和轉(zhuǎn)換,數(shù)值模擬,統(tǒng)計(jì)建模,機(jī)器學(xué)習(xí)等等?;谒猛镜膹V泛性, 它現(xiàn)在是非常流行的開(kāi)發(fā)工具。
在 PyCharm 內(nèi), 可以輕松地編輯、執(zhí)行和調(diào)試 Jupyter Notebook 源代碼,并檢查執(zhí)行輸出,包括流數(shù)據(jù)、圖像等等。
2. 在 PyCharm 編輯 Jupyter Notebook 文件
step1: 創(chuàng)建新的 Python 項(xiàng)目,指定虛擬環(huán)境,并安裝 jupyter 包。

step2: 在 “Project” 工具欄的上下文菜單里選擇 New -> Jupyter Notebook, 在彈出窗口中輸入文件名。

step3: 擴(kuò)展名為 .ipynb 文件被創(chuàng)建, 下面的編輯窗口將顯示。

step4: Jupyter 是個(gè)WEB應(yīng)用,點(diǎn)擊黃色燈泡按鈕,在菜單中選擇 Start Jupyter Server。

點(diǎn)擊日志中的鏈接,瀏覽器顯示如下:

Jupyter Notebook 編輯頁(yè)面如下,可直接在該頁(yè)面編輯文件,具體如何使用不是本課程內(nèi)容,具體請(qǐng)參考Jupyter 官方文檔。

step5: 回到PyCharm編輯文件。Notebook file 是由一個(gè)個(gè)cell構(gòu)成的,有三種類(lèi)型 code、raw 與markdown cell。(cell: 一對(duì)In Out會(huì)話被視作一個(gè)代碼單元, 每個(gè)代碼單元可以單獨(dú)執(zhí)行)

Tips: 在編輯Python Code Cell 時(shí),相應(yīng)的代碼補(bǔ)全,語(yǔ)法高亮顯示,錯(cuò)誤信息提示及快速修復(fù)等等功能與編輯標(biāo)準(zhǔn)的Python文件一樣都是支持的。
編輯完成以后,我們刷新一下對(duì)應(yīng)的瀏覽器頁(yè)面,PyCharm 內(nèi)編輯的內(nèi)容已經(jīng)同步更新了。

3. 運(yùn)行與調(diào)試 Code Cell
3.1 運(yùn)行 Code Cell
文件創(chuàng)建完成以后,在 PyCharm 里可以直接運(yùn)行了。PyCharm 提供了多種運(yùn)行方式,既可以單獨(dú)運(yùn)行一個(gè) Cell, 也可以一次全部運(yùn)行。不僅可以在同一頁(yè)面查看運(yùn)行結(jié)果,還可以查看變量詳情。

此時(shí),我們刷新一下對(duì)應(yīng)的瀏覽器頁(yè)面,運(yùn)行 Cell 生成的圖表也顯示出來(lái)了。

除此以外, 點(diǎn)擊工具欄中 黃色燈泡圖標(biāo),在菜單中選擇其它的運(yùn)行方式:
- 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)航到下一個(gè)Cell;
- Debug Cell:開(kāi)始調(diào)試Cell。

Tips: 如果想清除預(yù)覽窗口中所有輸出,請(qǐng)點(diǎn)擊上面的菜單中的
Clear Outputs。
在執(zhí)行過(guò)程中,要注意 Cell 之間的依賴(lài)關(guān)系,比如當(dāng)前 Cell 代碼調(diào)用了前一個(gè) Cell 的變量,在執(zhí)行當(dāng)前Cell 以前,要先執(zhí)行前面的Cell, 否則會(huì)報(bào)錯(cuò)。

3.2 調(diào)試
在 Code Cell 中設(shè)置斷點(diǎn),點(diǎn)擊綠色箭頭圖標(biāo),然后選擇"Debug Cell"。過(guò)程與調(diào)試標(biāo)準(zhǔn)的Python 是沒(méi)實(shí)質(zhì)性區(qū)別的。

Tips: 如果 當(dāng)前 Cell 從任何其它 Cell 調(diào)用函數(shù),至少要保證函數(shù)所在的 Cell 是被 Run過(guò)的,如果想單步執(zhí)行該函數(shù), 需要函數(shù)所在的Cell 是被 Debug 過(guò),而不僅僅是 Run 過(guò),這樣函數(shù)內(nèi)相關(guān)的斷點(diǎn)才工作。

4. Jupyter Server 管理
4. 1 啟動(dòng)與關(guān)閉服務(wù)
前面提到通過(guò)點(diǎn)擊工具欄 黃色燈泡 圖標(biāo),在彈出菜單中選擇 Start Jupyter Server啟動(dòng)服務(wù)。實(shí)際上要運(yùn)行 Jupyter 服務(wù)器,只需執(zhí)行任何 Cell 就可以了。當(dāng)啟動(dòng) Cell 執(zhí)行時(shí),PyCharm 使用任何可用端口(默認(rèn) 8888 端口)在本地主機(jī)上啟動(dòng) Jupyter 服務(wù)器。Jupyter 工具窗口會(huì)自動(dòng)打開(kāi)。

Tips: 可以通過(guò) Jupyter 工具窗口中的停止按鈕關(guān)閉服務(wù),也可以點(diǎn)擊工具欄 黃色燈泡 圖標(biāo),在彈出菜單中選擇 Stop Jupyter Server。
4.2 配置 Server
當(dāng)啟動(dòng)任何托管服務(wù)器時(shí),默認(rèn)情況下它使用當(dāng)前項(xiàng)目解釋器和自動(dòng)選擇的端口。實(shí)際上可以選擇 PyCharm 實(shí)例中可用的任何其他解釋器,并指定備用端口。也可以使用其它已知 jupyter 服務(wù)器的 URL 和 Token,連接到該服務(wù)器。
step1: 在 Jupyter 服務(wù)器列表中選擇"Configure Jupyter Server", 打開(kāi)服務(wù)器設(shè)置。

step2: 配置服務(wù)器
要自定義默認(rèn)的 Jupyter 服務(wù)器,請(qǐng)?jiān)?Jupyter 服務(wù)器對(duì)話框中選擇 Use Managed Server (托管服務(wù)器),從 Python 解釋器列表中選擇任何本地 Python 解釋器。

更改自動(dòng)檢測(cè)到的端口,在"port"字段中鍵入其編號(hào)。

除此以外,也可以連接到任何正在運(yùn)行的 Jupyter 服務(wù)器,請(qǐng)?jiān)?Jupyter 服務(wù)器對(duì)話框中選擇"Configured Server"并指定服務(wù)器的路徑,比如: 在本地命令行終端啟動(dòng)一個(gè) Jupyter server 。

拷貝上面的鏈接到下面的輸入框中,包括 url 與 token。

step3: 點(diǎn)擊 ok, 然后,切換到配置的服務(wù)器,在工具欄中的服務(wù)器列表中選擇"Switch to current Jupyter Server"。

step4: 執(zhí)行代碼后, 可能會(huì)遇到下面的信息“新配置的服務(wù)器的內(nèi)核與當(dāng)前項(xiàng)目解釋器不匹配”

單擊相應(yīng)的鏈接Register project interpreter as kernel(將項(xiàng)目解釋器注冊(cè)為配置服務(wù)器上的內(nèi)核)。然后可以在配置的服務(wù)器的內(nèi)核列表中看到它,就可以正常運(yùn)行 Cell 了。

5. 共享 Jupyter Notebooks
PyCharm 通過(guò) Datalore Plugin 實(shí)現(xiàn)對(duì) Jupyter Notebooks 的共享。Datalore 是用于數(shù)據(jù)分析的智能 Web 應(yīng)用程序。

step1: 共享 Notebook, 需要上傳文件到 Datalore, 點(diǎn)擊工具欄上的 “Upload to Jetbrain Datalore” 按鈕。

step2: 如果第一次訪問(wèn) Datalore,系統(tǒng)將要求登錄 Datalore 應(yīng)用程序。

step3: 點(diǎn)擊 Continue, 使用Datalore 帳戶登錄, 也可以使用Google 帳戶或者Jetbrain 帳戶登錄。

Tips: 有時(shí)候申請(qǐng) Datalore 新帳戶會(huì)長(zhǎng)時(shí)間收不到驗(yàn)證郵件,這時(shí)可以申請(qǐng)JetBrains 帳戶,然后用該帳戶登錄。
step4: Datalore 會(huì)顯示為你的帳戶生成的 API Token。單擊"Confirm"繼續(xù)

Tips: 上面的 Token 是保存在
PyCharm/File -> Preference/Settings -> Tools -> Datalore,隨時(shí)都可以注銷(xiāo),注銷(xiāo)后再需要上傳文件需要重新登錄。

step5:確認(rèn) token 信息后,會(huì)顯示 Upload Notebook 窗口:

step6: 上傳成功后,你會(huì)在你的 Datalore 帳戶下看到上傳的文件, 打開(kāi)它。

step7:在打開(kāi)頁(yè)面點(diǎn)擊 Share 按鈕,生成共享鏈接,其它人就可以通過(guò)這個(gè)鏈接訪問(wèn)上傳的
Notebook file 了。

step8:回到 PyCharm 編輯器,再次點(diǎn)擊工具欄上的 “Upload to Jetbrain Datalore” 按鈕。會(huì)出現(xiàn)帶有下面4個(gè)選項(xiàng)的菜單。如果不想共享文件了,也可以點(diǎn)擊 Manage Access Rights 修改訪問(wèn)權(quán)限

在"Share Settings “對(duì)話框中,單擊"關(guān)閉公共鏈接共享” 就可以關(guān)閉共享了。

6. 小結(jié)
本節(jié)主要講述在 PyCharm 里如何編輯、運(yùn)行與調(diào)試,以及共享 Jupyter Notebook 文件,為了更好應(yīng)用相關(guān)的功能,需要對(duì) Jupyter 與 Datalore 這些軟件多一些了解,建議多看一下官方文檔。

XuXinHong ·
2025 imooc.com All Rights Reserved |