1. 程式人生 > >雲伺服器搭建神器JupyterLab(多圖)

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

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

JupyterLab是一個互動式的開發環境,其用於應對包含著notebook、程式碼以及資料的工作場景。

1、前言

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

從2017年開始我注意到這一神奇的IDE筆記本,第一眼見到它,就覺得它真的太強大了,作為一個互動式的Python開發工具,其實也不算開發工具,準確的來說,它是一個演示程式碼的科學資料工具,支援markdown預覽,支援Draw擴充套件,支援豐富的檔案格式和多種開發語言,擁有眾多外掛諸於GitHubGoogle-Dirve

GitTOC,更重要的是,它是把瀏覽器當作開發工具,十分有創意。JupyterLab的開發者眾多,GitHub上面的isuue也十分活躍,眾多的大牛開發者也紛紛加入到JupyterLab的陣營,為JupyterLab的發展作貢獻,JupyterLab得到迅速發展。

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

2、購買雲伺服器ECS

這裡我就直接買了阿里的學生優惠的ECS,9.9元/月,價格算是良心了,這裡可以領一下優惠券:阿里雲限時禮包。亞馬遜還有每個賬戶免費使用一年雲伺服器的機會,也可以用一用。購買之後建立例項,啟動雲伺服器,我這裡用的是Ubuntu 16.04

映象,記住你設定的root密碼。如果沒有特殊要求,可以直接使用root使用者進行下面操作,不必新建使用者。

3、登入ECS並安裝必要軟體

sudo apt-get install ssh
ssh [email protected]公網ip

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

3.1 先做好準備工作

比喻你新增ppa源的時候出現這種情況

[email protected]:~# sudo add-apt-repository ppa:chronitis/jupyter
sudo: add-apt-repository: command
not found

解決辦法

sudo apt-get install software-properties-common

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 
  • 第二步:Install Easy Install
sudo apt-get install python-setuptools python-dev build-essential 
  • 第三步:Install pip
sudo easy_install pip 
  • 第四步Install virtualenv
sudo pip install --upgrade virtualenv 
  • For Python3
sudo apt-get install python3-pip
  • For Python2
sudo apt-get install python-pip

升級pip

sudo pip3 install --upgrade pip
sudo pip2 install --upgrade pip
sudo pip install --upgrade pip

更換pip源加速下載

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

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

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

pip指向問題

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

編輯這三個檔案,將第一行註釋分別改為python\python2\python3

~ $which pip
/usr/local/bin/pip
21:36 [email protected]:
~ $which pip2
/usr/local/bin/pip2
21:36 [email protected]:
~ $which pip3
/usr/local/bin/pip3

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

安裝yarn

sudo apt-get update
sudo apt-get install yarn

注意這裡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

匯入公匙並安裝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

安裝ipython,matplotlib,scipy,pandas,numpy

最好python2python3都安裝。

4、安裝JupyterLab及其配置

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

sudo pip2 install jupyterlab

生成密碼

jupyter-notebook password

4.1 建立雜湊密碼

ipython
from notebook.auth import passwd
passwd()
# 輸入你自己設定登入JupyterLab介面的密碼,
# 然後就會生產下面這樣的密碼,將它記下來,待會兒用
'sha1:b92f3fb7d848:a5d40ab2e26aa3b296ae1faa17aa34d3df351704'

4.2 修改JupyterLab配置檔案

先生成一個配置檔案,記下輸出的配置檔案地址

jupyter lab --generate-config

修改配置檔案,找到下面這幾行檔案,註釋掉並修改成這樣。

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

對應每行稍微解釋一下

允許以root方式執行jupyterlab
允許任意ip段訪問
設定jupyterlab頁面的根目錄
預設執行時不啟動瀏覽器,因為伺服器預設只有終端嘛
設定之前生產的雜湊密碼
設定訪問埠

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

jupyter-lab --version
0.33.12
jupyter lab build

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

5、新增安全組


去ECS控制檯新增安全組,不然你無法通過本地瀏覽器訪問JupyterLab,設定8080埠入方向。

遠端訪問JupyterLab

執行下面命令。

# nohup表示ssh終端斷開後仍然執行
# &表示允許後臺執行
nohup jupyter lab &

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

輸入密碼就可以用了。

6、JupyterLab擴充套件安裝

檢視已經安裝的擴充套件及其狀態:

jupyter labextension list

比喻安裝一個擴充套件jupyterlab_html,支援html預覽:

jupyter labextension install @mflevine/jupyterlab_html

解除安裝擴充套件:

jupyter labextension uninstall @mflevine/jupyterlab_html

更新所有擴充套件:

jupyter labextension update --all

下面以安裝GitHub擴充套件為例。

安裝GitHub擴充套件

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

下載安裝擴充套件:

jupyter labextension install @jupyterlab/github

配置token

# 在之前的生成的config檔案中新增
c.GitHubConfig.access_token = '< YOUR_ACCESS_TOKEN >'

需要其他擴充套件的在GitHub可以自行下載。

7、核心安裝與解除安裝

安裝Python核心

sudo pip2 install ipykernel
sudo pip3 install ipykernel

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

檢視已經安裝的核心

jupyter kernelspec list

刪除你不需要的核心

jupyter kernelspec remove <kernel_name>
/root/JupyterLab

8、域名和https配置

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

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

9、結語

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

  • 畫圖:

  • 多語言支援:

  • markdown寫作體驗:

  • 內部開啟網頁:

  • 多標籤和幫助文件

  • 豐富的擴充套件外掛及其管理配置:

原創博文,轉載註明請註明出處: https:www.ds-vip.top