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 就可以啦,你会发现现在你可以自定义任何环境来跑你特定的任务了!
JupyterLab 配置远程python、R环境(与Jupyter兼容)_第1张图片

卸载conda

rm -r .conda/
rm -r miniconda3/

结语

​   jupyter lab是一个非常棒的交互式数据分析工具,然而受限于本机的计算能力有时候也会很卡,或则影响我们其他工作,能灵活运用好远程资源可以解放我们的local电脑资源,提高工作效率!

你可能感兴趣的:(Python)