雲伺服器搭建神器JupyterLab(多圖)
雲伺服器搭建神器JupyterLab(多圖)
JupyterLab
是一個互動式的開發環境,其用於應對包含著notebook
、程式碼以及資料的工作場景。
1、前言
如果說vim
是編輯器之神,那麼JupyterLab
就是筆記本之神。
從2017年開始我注意到這一神奇的IDE
筆記本,第一眼見到它,就覺得它真的太強大了,作為一個互動式的Python
開發工具,其實也不算開發工具,準確的來說,它是一個演示程式碼的科學資料工具,支援markdown
預覽,支援Draw擴充套件,支援豐富的檔案格式和多種開發語言,擁有眾多外掛諸於GitHub
, Google-Dirve
Git
和TOC
,更重要的是,它是把瀏覽器當作開發工具,十分有創意。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
源加速下載
- 阿里雲 http://mirrors.aliyun.com/pypi/simple/
- 中國科技大學 https://pypi.mirrors.ustc.edu.cn/simple/
- 豆瓣(douban) http://pypi.douban.com/simple/
- 清華大學 https://pypi.tuna.tsinghua.edu.cn/simple/
- 中國科學技術大學 http://pypi.mirrors.ustc.edu.cn/simple/
cat > ~/.pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
npm
和yarn
也可以換源,更簡單,自行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 安裝yarn
和nodejs
配置倉庫
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
,這個版本的nodejs
對jupyterlab
支援比較友好。
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
最好python2
和python3
都安裝。
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配置可以參考這兩篇文章:
- 阿里雲如何配置HTTPS
- nginx伺服器配置教程(以ubuntu 16.04為例): https://github.com/lensh/vue-qq/issues/13
其實為覺得沒必要,畢竟是個人用的工具,沒必要搞個域名,不過強迫症就另說了。具體效果是這樣的:
- 我的
nginx
配置:nginx.conf
9、結語
JupyterLab
的搭建就是這麼簡單,好的工具就應該好好利用,支援做圖,markdown
,多標籤,內部開啟網頁,latex
,網頁預覽,這麼好的工具我應該早點發現呀。最後,以秀圖結束本文,多多指教!
- 畫圖:
- 多語言支援:
markdown
寫作體驗:
- 內部開啟網頁:
- 多標籤和幫助文件
- 豐富的擴充套件外掛及其管理配置:
原創博文,轉載註明請註明出處: https:www.ds-vip.top