JupyterLab 配置遠程python、R環境(與Jupyter兼容)

​  官網如是介紹JupyterLab: JupyterLab is the next-generation web-based user interface for Project Jupyter。可見,Jupyter Lab是Jupyter的下一代計劃,其包含了Jupyter Notebook所有功能,可作爲一種基於web的集成開發環境,你可以使用它編寫notebook、操作終端、編輯markdown文本、查看文本文件及圖片等功能。本文將介紹在Anaconda中利用jupyter搭建個性化Python、R語言遠程編程環境。

本篇博客的敘述適合對Anaconda的使用有一定基礎的同學,關於Anconda常見基本操作,請參考官方文檔或則也許你可以參考我之前的博客Anaconda常用命令

安裝Anaconda

​  刪繁就簡就是我的個人原則,所以安裝Anaconda, 我選擇Miniconda, 它是Anaconda的最小化版本,只包含conda、python以及一些必須的包。進入Miniconda選擇適合你的版本即可下載安裝:

# 以下所有安裝演示均在terminal中進行
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh  # 下載linux 64bit 版本
$ /bin/bash Miniconda3-latest-Linux-x86_64.sh  # 啓動安裝,接下來按照提示完成即可

Do you wish the installer to initialize Miniconda3
by running conda init? [yes|no]
[no] >>> no  # 建議不init,其他yes就好

​   接下來在.bashrc中添加環境變量,並加載環境變量:

echo 'export PATH="~/miniconda3/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

conda info --envs  # 測試以下conda

安裝配置jupyter lab

​   它的安裝很簡單啦,官網列出了很多安裝方式,但是以我的經驗和踩坑經歷,大多數的時候,儘量別在base環境下安裝包,更加明智的選擇是按照你的工作類型、項目創建不同的虛擬環境,以免一個環境被破壞,全盤奔潰。所以這裏我們先創建一個虛擬環境,再進行各種包的安裝以及環境配置。

conda create --name common python=3.6.8
source activate common
pip install jupyterlab # 推薦在conda中使用pip安裝各種包

​   下面先生成密鑰,然後再在~/.jupyter/jupyter_notebook_config.py中修改配置文件即可:

jupyter lab --generate-config  # 生成默認配置文件 ~/.jupyter/jupyter_notebook_config.py`
ipython
# --------------------------------------------------
In [1]: from notebook.auth import passwd                                                                                                         
In [2]: passwd()                                                                                                                                 
Enter password: 
Verify password: 
Out[2]: 'sha1:c2d56265c773:e06ef2b97c94bbb014f65bd2975d43c7da12520e'

​   修改配置文件中的以下項:

c.NotebookApp.ip='*'
c.NotebookApp.allow_remote_access = True
c.NotebookApp.password = u'sha1:c2d56265c773:e06ef2b97c94bbb014f65bd2975d43c7da12520e'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8989 #可自行指定一個端口, 訪問時使用該端口

遠程連接jupyter lab

​   首先我們在遠程服務器開啓jupyter lab, 下面代碼中,nohup可以使代碼進入後臺運行,關於更多linux命令後臺運行,請參考Linux 後臺運行程序方法總結

source activate common
nohup jupyter lab &

​  然後在本地使用ssh和服務器建立連接,其中-N :SSH沒有命令要被遠程執行; -f :SSH在後臺執行; -L :指定port forwarding的配置:

ssh -p port -N -f -L localhost:8989:localhost:8989 username@ip

​  最後在本地瀏覽器中訪問:http://localhost:8989/lab 就可以啦

定製化編程環境

​  上面已經實現了local連接遠程服務器jupyterlab 並進行編程地功能,是不是就okay了呢?當然不是,我們知道,R語言、python的包都是不斷更新的,但是有的項目中我們需要特定的包,另一個項目又可能最新的包,如果我們需要在local使用遠程不同虛擬環境怎麼辦呢?且往下看:

R語言

  默認jupyter lab使用的應該是系統的R,我們一般使用自己虛擬環境中創建的R環境,這樣不需要管理員權限就可以方便地管理自己的packages:

conda install r==3.6
which R

  在R語言中安裝相關package:

> install.packages("devtools")
> devtools::install_github('IRkernel/IRkernel')
> IRkernel::installspec(name = 'ir36-common', displayname = 'R 3.6-common')
[InstallKernelSpec] Installed kernelspec ir36-common in ~/.local/share/jupyter/kernels/ir36-common
Python

​  類似R語言,首先需要安裝一個ipykernel,然後再安裝一個kernel到~/.local/share/jupyter/kernels目錄下,原理一模一樣:

pip install ipykernel
python -m ipykernel install --user --name python3-commom

​  現在大工告成啦!使用ssh連接遠程服務器之後,在本地瀏覽器中訪問:http://localhost:8989/lab 就可以啦,你會發現現在你可以自定義任何環境來跑你特定的任務了!
在這裏插入圖片描述

卸載conda

rm -r .conda/
rm -r miniconda3/

結語

​   jupyter lab是一個非常棒的交互式數據分析工具,然而受限於本機的計算能力有時候也會很卡,或則影響我們其他工作,能靈活運用好遠程資源可以解放我們的local電腦資源,提高工作效率!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章