Pycharm關(guān)于遠程JupyterLab以及JupyterHub登錄問題
需求分析
在之前的文章中我們討論了如何使用Pycharm連接遠程服務(wù)器并進行調(diào)試,Pycharm中SSH、SFTP連接遠程服務(wù)器編輯調(diào)試教程,
成功在Pycharm中添加了遠程Python解釋器,并用其運行了服務(wù)器上的.py文件,
但是對于很多數(shù)據(jù)科學(xué)工作者,Jupyter Notebook的靈活易用性仍然是他們選擇其的重要一環(huán),
目前的教程講解的多是如何在服務(wù)器上開啟jupyter notebook服務(wù)并在Pycharm中使用,而并沒有關(guān)注到多人服務(wù)器中的JupyterHub配置情況。
本文章重點討論如何在遠程服務(wù)器開啟JupyterHub且不能私自打開jupyter notebook服務(wù)的情況下如何配置Pycharm使其可以使用遠程Jupyter notebook服務(wù)。
登錄網(wǎng)頁JupyterHub
由于無法自己開設(shè)jupyter notebook服務(wù),因此首先需要知道服務(wù)器的IP和JupyterHub的端口,在瀏覽器中輸入(將IP替換為你的服務(wù)器IP,Port替換為你的服務(wù)器的JupyterHub所占用的端口)
http://IP:Port/
進入JupyterHub服務(wù)頁面,如下圖所示

這個時候會輸入用戶名和密碼,這里的用戶名和密碼對應(yīng)服務(wù)器的用戶名和密碼,填好后點擊登錄,此時會自動開啟服務(wù),并進入你的JupyterLab頁面,
如下圖所示,畫紅圈的地方代表了你的虛擬環(huán)境。

如果需要向jupyterlab中添加自己的anaconda環(huán)境,
首先進入該環(huán)境,然后執(zhí)行以下命令:
python -m ipykernel install --user --name 參數(shù)1 --display-name "參數(shù)2"
注意需要安裝ipykernel這個包,命令中的“參數(shù)1”需要改為你的conda創(chuàng)建的環(huán)境的名稱,“參數(shù)2”需要改為你想要在jupyterlab上展示的名字。
例如:
python -m ipykernel install --user --name pytorch1.6 --display-name "pytorch1.6"
執(zhí)行完這條命令后,會在用戶目錄下創(chuàng)建相關(guān)kernel,此時再打開jupyterhub,就能選擇這個kernel了,我這里的kernel名字是torch1.13。
正常來講這個時候我們就可以在瀏覽器的JupyterLab里面打開文件敲代碼了,接下來配置Pycharm
Pycharm配置遠程JupyterHub
打開你需要在服務(wù)器運行的Jupyter項目,配置好與服務(wù)器的SFTP設(shè)置(如何配置請參考"需求分析"中的連接),初始狀態(tài)如下圖所示,紅圈和綠圈分別對應(yīng)著本地和遠程服務(wù)器mapping的項目文件,接下來我配置mi_estimation.ipynb文件來作為演示。

進入設(shè)置中的Jupyter Server頁面,
如下圖所示,選擇Configured Server

在這個地方輸入與前面瀏覽器打開JupyterHub相同的網(wǎng)址,即http://IP:Port/,點擊確定,Pycharm會自動驗證該地址。
這個時候可以看到下圖紅色標記處就已經(jīng)有你的Jupyter Server了。

接著嘗試運行任意一個cell,會彈出JupyterHub的認證頁面,
如下圖所示

在這里要尤其注意的是,這里的Username是你在服務(wù)器的用戶名。
但是!但是!這里需要填的是Token,而不是密碼,接下來我們需要獲取Token。
回到在上個階段打開的JupyterHub網(wǎng)頁,選擇左上角File->Hub Control Panel

彈出下圖所示頁面,選擇圖中圈出的Token

在這個地方列出了目前所有用到JupyterHub Api的地方,
如下圖所示

因為我們需要在Pycharm上再配一個Jupyter,所以點擊上方按鈕“Request new API token”
如下圖所示

接下來,粘貼此Token至Pycharm剛才彈出的對話框的Token位置,點擊OK

這個時候剛才我們運行的那個Cell已經(jīng)開始運行了,并給出了運行結(jié)果,右上角可以選擇虛擬環(huán)境

至此,Pycharm配置JupyterHub服務(wù)來遠程運行Jupyter文件已全部結(jié)束。
一點思考
根據(jù)之前的文章可以發(fā)現(xiàn),當我們運行.py文件時,點擊運行的那一刻,Pycharm是先將本地的文件上傳至服務(wù)器覆蓋相應(yīng)文件后,再調(diào)用遠程Python解釋器來運行服務(wù)器文件。
而針對.ipynb文件卻不是這種邏輯,在運行每一個Cell的時候,其實Pycharm并沒有將整個文件上傳到服務(wù)器上,而是僅僅使用Jupyter服務(wù)來運行相應(yīng)Cell代碼,只有當我們手動將整個文件upload到服務(wù)器上時才會對服務(wù)器上相應(yīng)文件進行更新。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python中的生成器實現(xiàn)周期性報文發(fā)送功能
本文主要介紹了python中的生成器實現(xiàn)周期性報文發(fā)送功能,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
Python3.13?+Pycharm?開發(fā)環(huán)境配置
本文全面解釋了如何配置Python3.13和PyCharm的開發(fā)環(huán)境,適合初學(xué)者,詳細介紹了Python安裝步驟、選擇解釋器、常用快捷鍵和推薦插件,強調(diào)了虛擬環(huán)境的重要性,以及如何使用PyCharm進行高效開發(fā),感興趣的可以了解一下2024-11-11
使用Pandas實現(xiàn)數(shù)據(jù)的清理的入門詳解
數(shù)據(jù)清理是數(shù)據(jù)分析過程中的關(guān)鍵步驟,它涉及識別缺失值、重復(fù)行、異常值和不正確的數(shù)據(jù)類型,本文將介紹6個經(jīng)常使用的數(shù)據(jù)清理操作,希望對大家有所幫助2023-08-08
淺析Python與Mongodb數(shù)據(jù)庫之間的操作方法
這篇文章主要介紹了Python與Mongodb數(shù)據(jù)庫之間的操作,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07
一文教你如何創(chuàng)建Python虛擬環(huán)境venv
創(chuàng)建?Python?虛擬環(huán)境是一個很好的實踐,可以幫助我們管理項目的依賴項,避免不同項目之間的沖突,下面就跟隨小編一起學(xué)習(xí)一下如何創(chuàng)建Python虛擬環(huán)境venv吧2024-12-12

