雲服務器搭建神器JupyterLab(多圖)


雲服務器搭建神器JupyterLab(多圖)

JupyterLab是一個交互式的開發環境,其用於應對包含着notebook、代碼以及數據的工作場景。

1、前言

如果說vim是編輯器之神,那么JupyterLab就是筆記本之神。

從2017年開始我注意到這一神奇的IDE筆記本,第一眼見到它,就覺得它真的太強大了,作為一個交互式的Python開發工具,其實也不算開發工具,准確的來說,它是一個演示代碼的科學數據工具,支持markdown預覽,支持Draw擴展,支持豐富的文件格式和多種開發語言,擁有眾多插件諸於GitHubGoogle-DirveGitTOC,更重要的是,它是把瀏覽器當作開發工具,十分有創意。JupyterLab的開發者眾多,GitHub上面的isuue也十分活躍,眾多的大牛開發者也紛紛加入到JupyterLab的陣營,為JupyterLab的發展作貢獻,JupyterLab得到迅速發展。

好的工具當然是要好好利用了,回歸正題,怎樣通過雲服務器搭建一個可遠程使用的JupyterLab?

 

目的:為了在沒有安裝python的機器上工作,直接用瀏覽器進入,進行代碼的調試和顯示了

2、購買雲服務器ECS

這里我就直接買了阿里的學生優惠的ECS,9.9元/月,價格算是良心了,這里可以領一下優惠券:阿里雲限時禮包。亞馬遜還有每個賬戶免費使用一年雲服務器的機會,也可以用一用。購買之后創建實例,啟動雲服務器,我這里用的是Ubuntu 16.04鏡像,記住你設置的root密碼。如果沒有特殊要求,可以直接使用root用戶進行下面操作,不必新建用戶。

3、登錄ECS並安裝必要軟件

sudo apt-get install ssh
ssh root@公網ip
  • 1
  • 2

這個ip是公網ip,在你購買的服務器運營商的實例列表里,如果不出意外就可以登錄ECS了。

3.1 先做好准備工作

比喻你添加ppa源的時候出現這種情況

root@iZwz9huxtbd86xp91s3j16Z:~# sudo add-apt-repository ppa:chronitis/jupyter sudo: add-apt-repository: command not found 
  • 1
  • 2

解決辦法

sudo apt-get install software-properties-common 
  • 1

3.2 關於pip的問題

安裝pip

  • 第一步:Install pip and virtualenv for Ubuntu 16.04LTS Maverick and newer
sudo apt-get install python-pip python-dev build-essential sudo pip install --upgrade pip sudo pip install --upgrade virtualenv 
  • 1
  • 2
  • 3
  • 第二步:Install Easy Install
sudo apt-get install python-setuptools python-dev build-essential 
  • 1
  • 第三步:Install pip
sudo easy_install pip 
  • 1
  • 第四步Install virtualenv
sudo pip install --upgrade virtualenv 
  • 1
  • For Python3
sudo apt-get install python3-pip 
  • 1
  • For Python2
sudo apt-get install python-pip 
  • 1

升級pip

sudo pip3 install --upgrade pip
sudo pip2 install --upgrade pip
sudo pip install --upgrade pip
  • 1
  • 2
  • 3

更換pip源加速下載

cat > ~/.pip/pip.conf [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple 
  • 1
  • 2
  • 3

npmyarn也可以換源,更簡單,自行google

pip國內的一些鏡像包,換源之后出現python2版本過低的情況導致以前的包下載不了,那就直接將文件夾~/.pip/pip.conf刪除就可以恢復原來的源。

pip指向問題

有時候會出現pip,pip2,pip3都TM指向python2,這個之后就需要改一下這這三個文件。

編輯這三個文件,將第一行注釋分別改為python\python2\python3

~ $which pip /usr/local/bin/pip 21:36 alien@alien-Inspiron-3443: ~ $which pip2 /usr/local/bin/pip2 21:36 alien@alien-Inspiron-3443: ~ $which pip3 /usr/local/bin/pip3 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.3 安裝yarnnodejs

配置倉庫

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list 
  • 1
  • 2

安裝yarn

sudo apt-get update sudo apt-get install yarn 
  • 1
  • 2

注意這里yarn自動安裝了nodejs,不過版本太低,安裝jupyterlab的時候會出問題,而且使用n或者nvm安裝的nodejs也有問題,總之nodejs要按照下面這種方式就沒事,這個是官方的bug,官方issue也提到過,但是目前還未解決。

安裝nodejs

創建一個新文件,輸入兩行deb,結束之后Ctrl+C:

cat > /etc/apt/sources.list.d/nodesource.list deb https://deb.nodesource.com/node_6.x xenial main deb-src https://deb.nodesource.com/node_6.x xenial main 
  • 1
  • 2
  • 3

導入公匙並安裝nodejs,這個版本的nodejsjupyterlab支持比較友好。

curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
sudo apt-get update
apt-cache policy nodejs
sudo apt-get install nodejs
nodejs --version
  • 1
  • 2
  • 3
  • 4
  • 5

安裝ipython,matplotlib,scipy,pandas,numpy

最好python2python3都安裝。

4、安裝JupyterLab及其配置

記住使用pip2安裝,如果你用pip3安裝的話可能會出現版本兼容問題。

sudo pip2 install jupyterlab 
  • 1

生成密碼

jupyter-notebook password
  • 1

4.1 創建哈希密碼

ipython
from notebook.auth import passwd passwd() # 輸入你自己設置登錄JupyterLab界面的密碼, # 然后就會生產下面這樣的密碼,將它記下來,待會兒用 'sha1:b92f3fb7d848:a5d40ab2e26aa3b296ae1faa17aa34d3df351704' 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4.2 修改JupyterLab配置文件

先生成一個配置文件,記下輸出的配置文件地址

jupyter lab --generate-config
  • 1

修改配置文件,找到下面這幾行文件,注釋掉並修改成這樣。

c.NotebookApp.allow_root = True c.NotebookApp.ip = '0.0.0.0' c.NotebookApp.notebook_dir = u'/root/JupyterLab' c.NotebookApp.open_browser = False c.NotebookApp.password = u'sha1:b92f3fb7d848:a5d40ab2e26aa3b296ae1faa17aa34d3df351704' c.NotebookApp.port = 8080 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

對應每行稍微解釋一下

允許以root方式運行jupyterlab
允許任意ip段訪問
設置jupyterlab頁面的根目錄
默認運行時不啟動瀏覽器,因為服務器默認只有終端嘛
設置之前生產的哈希密碼
設置訪問端口
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

到此,JupyterLab已經安裝成功了。

jupyter-lab --version
0.33.12
jupyter lab build
  • 1
  • 2
  • 3

jupyter lab build時間有點久,如果沒報錯就成功了。但此時你還不能訪問JupyterLab,還需要添加端口規則,也就是所謂的添加安全組。

5、添加安全組


去ECS控制台添加安全組,不然你無法通過本地瀏覽器訪問JupyterLab,設置8080端口入方向。

遠程訪問JupyterLab

運行下面命令。

# nohup表示ssh終端斷開后仍然運行 # &表示允許后台運行 nohup jupyter lab & 
  • 1
  • 2
  • 3

瀏覽器輸入公網ip:8080,就可以訪問你的JupyterLab了,第一次訪問比較慢,耐心一點,如果最終還是無法訪問,那么就是你的安全組配置錯啦。

輸入密碼就可以用了。

6、JupyterLab擴展安裝

查看已經安裝的擴展及其狀態:

jupyter labextension list
  • 1

比喻安裝一個擴展jupyterlab_html,支持html預覽:

jupyter labextension install @mflevine/jupyterlab_html
  • 1

卸載擴展:

jupyter labextension uninstall @mflevine/jupyterlab_html
  • 1

更新所有擴展:

jupyter labextension update --all
  • 1

下面以安裝GitHub擴展為例。

安裝GitHub擴展

先去GitHub生成一個token,記下token,待會兒配置要用。

下載安裝擴展:

jupyter labextension install @jupyterlab/github 
  • 1

配置token

# 在之前的生成的config文件中添加 c.GitHubConfig.access_token = '< YOUR_ACCESS_TOKEN >' 
  • 1
  • 2

需要其他擴展的在GitHub可以自行下載。

7、內核安裝與卸載

安裝Python內核

sudo pip2 install ipykernel sudo pip3 install ipykernel 
  • 1
  • 2

如果pip指向正常的話就可以看到兩個Python內核了。

查看已經安裝的內核

jupyter kernelspec list
  • 1

刪除你不需要的內核

jupyter kernelspec remove <kernel_name> /root/JupyterLab 
  • 1
  • 2

8、域名和https配置

域名和SSL配置可以參考這兩篇文章:

其實為覺得沒必要,畢竟是個人用的工具,沒必要搞個域名,不過強迫症就另說了。具體效果是這樣的:

9、結語

JupyterLab的搭建就是這么簡單,好的工具就應該好好利用,支持做圖,markdown,多標簽,內部打開網頁,latex,網頁預覽,這么好的工具我應該早點發現呀。最后,以秀圖結束本文,多多指教!

  • 畫圖:

  • 多語言支持:

  • markdown寫作體驗:

  • 內部打開網頁:

  • 多標簽和幫助文檔

  • 豐富的擴展插件及其管理配置:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM