1. Jupyter Notebook
Jupyter項目是一個非盈利的開源項目,源於 2014 年的 ipython 項目,支持運行 40 多種編程語言。
Jupyter Notebook 的本質是一個 Web 應用程序,便於創建和共享程序文檔,支持實時代碼,數學方程,可視化和 markdown。 用途包括:數據清理和轉換,數值模擬,統計建模,機器學習等等。基於它用途的廣泛性, 它現在是非常流行的開發工具。
在 PyCharm 內, 可以輕松地編輯、執行和調試 Jupyter Notebook 源代碼,並檢查執行輸出,包括流數據、圖像等等。
2. 在 PyCharm 編輯 Jupyter Notebook 文件
step1: 創建新的 Python 項目,指定虛擬環境,並安裝 jupyter 包。
step2: 在 “Project” 工具欄的上下文菜單里選擇 New -> Jupyter Notebook
, 在彈出窗口中輸入文件名。
step3: 擴展名為 .ipynb 文件被創建, 下面的編輯窗口將顯示。
step4: Jupyter 是個WEB應用,點擊黃色燈泡按鈕,在菜單中選擇 Start Jupyter Server
。
點擊日志中的鏈接,瀏覽器顯示如下:
step5: 回到PyCharm編輯文件。Notebook file 是由一個個cell構成的,有三種類型 code、raw 與markdown cell。(cell: 一對In Out會話被視作一個代碼單元, 每個代碼單元可以單獨執行)
Tips: 在編輯Python Code Cell 時,相應的代碼補全,語法高亮顯示,錯誤信息提示及快速修復等等功能與編輯標准的Python文件一樣都是支持的。
編輯完成以后,我們刷新一下對應的瀏覽器頁面,PyCharm 內編輯的內容已經同步更新了。
3. 運行與調試 Code Cell
文件創建完成以后,在 PyCharm 里可以直接運行了。PyCharm 提供了多種運行方式,既可以單獨運行一個 Cell, 也可以一次全部運行。不僅可以在同一頁面查看運行結果,還可以查看變量詳情。
此時,我們刷新一下對應的瀏覽器頁面,運行 Cell 生成的圖表也顯示出來了。
除此以外, 點擊工具欄中 黃色燈泡圖標,在菜單中選擇其它的運行方式:
- Run Cell:執行當前 Cell;
- Run All Above:執行當前與當前 Cell 上面的所有 Cell;
- Run All Below:執行當前與當前 Cell 后面的所有 Cell;
- Run Cell and Select Below:執行當前Cell, 並導航到下一個Cell;
- Debug Cell:開始調試Cell。
在執行過程中,要注意 Cell 之間的依賴關系,比如當前 Cell 代碼調用了前一個 Cell 的變量,在執行當前Cell 以前,要先執行前面的Cell, 否則會報錯。
3.2 調試
在 Code Cell 中設置斷點,點擊綠色箭頭圖標,然后選擇"Debug Cell"。過程與調試標准的Python 是沒實質性區別的。
Tips: 如果 當前 Cell 從任何其它 Cell 調用函數,至少要保證函數所在的 Cell 是被 Run過的,如果想單步執行該函數, 需要函數所在的Cell 是被 Debug 過,而不僅僅是 Run 過,這樣函數內相關的斷點才工作。
4. Jupyter Server 管理
前面提到通過點擊工具欄 黃色燈泡 圖標,在彈出菜單中選擇 Start Jupyter Server
啟動服務。實際上要運行 Jupyter 服務器,只需執行任何 Cell 就可以了。當啟動 Cell 執行時,PyCharm 使用任何可用端口(默認 8888 端口)在本地主機上啟動 Jupyter 服務器。Jupyter 工具窗口會自動打開。
4.2 配置 Server
當啟動任何托管服務器時,默認情況下它使用當前項目解釋器和自動選擇的端口。實際上可以選擇 PyCharm 實例中可用的任何其他解釋器,並指定備用端口。也可以使用其它已知 jupyter 服務器的 URL 和 Token,連接到該服務器。
step1: 在 Jupyter 服務器列表中選擇"Configure Jupyter Server", 打開服務器設置。
step2: 配置服務器
要自定義默認的 Jupyter 服務器,請在 Jupyter 服務器對話框中選擇 Use Managed Server (托管服務器),從 Python 解釋器列表中選擇任何本地 Python 解釋器
更改自動檢測到的端口,在"port"字段中鍵入其編號。
除此以外,也可以連接到任何正在運行的 Jupyter 服務器,請在 Jupyter 服務器對話框中選擇"Configured Server"並指定服務器的路徑,比如: 在本地命令行終端啟動一個 Jupyter server 。
拷貝上面的鏈接到下面的輸入框中,包括 url 與 token。
step3: 點擊 ok, 然后,切換到配置的服務器,在工具欄中的服務器列表中選擇"Switch to current Jupyter Server"。
step4: 執行代碼后, 可能會遇到下面的信息“新配置的服務器的內核與當前項目解釋器不匹配”
單擊相應的鏈接Register project interpreter as kernel(將項目解釋器注冊為配置服務器上的內核)。然后可以在配置的服務器的內核列表中看到它,就可以正常運行 Cell 了。
進程管理, 添加文件/etc/systemd/system/jupyter.service
[Unit] Description=Jupyter Service [Service] Type=forking ExecStart=/usr/bin/python3 -m IPython notebook KillMode=process Restart=on-failure RestartSec=3s [Install] WantedBy=multi-user.target
systemctl start jupyter
systemctl enable jupyter
參考:PyCharm集成Jupyter Notebook丨慕課網教程 (imooc.com)