Windows10下的Linux子系统启用及JupyterNotebook入门

介绍Windows10系统如何启用Linux子系统,以及安装conda、python(各种库),并介绍一个非常好用非常推荐的脚本编辑运行应用——JupyterNotebook。

引言

作为气象专业的一员,是离不开Linux系统的,无论是各类数值模式,还是各种编程语言还是超级计算机的使用,都依赖于Linux系统(即使python可以在windows系统运行,但仍有很多库并不能很好的兼容windows系统)。如果在自己的计算机安装双系统或者虚拟机,显然有些大题小做并且十分麻烦,对于windows10的伙伴来说,启用Linux子系统就势在必得了。win10独有的Linux子系统功能(Windows Subsystem for Linux,简称WSL) 会给你的科研之路带来全新的体验。

1. 启用WSL

首先在控制面板里打开“程序和功能”,选择“启用或关闭Windows功能”,然后勾选“适用于Linux的Windows子系统(beta)”。然后系统就会提示你是否重新启动以启用更新。重启之后,WSL功能已经打开,但linux子系统还未安装。

image-20200521220133123 image-20200521220149246

1703版之后的win10把Ubuntu作为一个软件放在了应用商店。打开应用商店,直接下载Ubuntu。

下载完成之后打开Ubuntu就自动下载了。然后就是设置密码用户名(建议不要以admin,root这类用户名作为自己的用户名,后续使用中容易出现权限问题)。

至此,WSL就启用成功了。

2. 安装Miniconda

进入miniconda官网下载地址,找到Linux安装文件(如下图),选择python3.7版本,右建选择复制下载链接:

image-20200521220528952

之后,打开Ubuntu进入WSL交互端口,键入wget+空格+右建,如下:

1
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

回车即可下载。下载完成后,输入bash+空格+***.sh (***为刚刚下载的文件名)进行安装。如下:

1
bash Miniconda3-latest-Linux-x86_64.sh

conda安装完成后,输入指令

1
conda create --name 123 python=3.7

来创建一个名叫123的基于python3.7语言的环境(123可以任意改名)。

通俗的讲,可以将WSL当做是一个公寓,conda相当于一个管理员,而创建的每个环境都是一个独立的房间,你可以通过conda去管理每一个房间,如果一个房间遭到了破坏,那么重建它,而不会影响其他的房间。那么接下来请将自己代入conda这个管理员的身份,来使用你的环境,也就是说,我们尽可能的通过conda去设计房间(安装各种软件,依赖库,python库等等),不经过管理员就私自改造房间,容易造成混乱。

我们每次开启WSL(打开Ubuntu)后也就是进入了公寓后,需要先进入我们工作的房间,指令如下

1
conda activate 123

那么比如说我们只使用一个房间,有没有办法打开公寓大门就能直接进入房间呢?有的,修改环境变量就好了(但是不建议)。

1
vim ~/.bashrc

在末尾添加:

1
source activate 123

之后重启Ubuntu即可,再次打开就会发现用户名前出现了“(123)”。

房间盖好了,接下来我们要装修了,也就是说安装各种常用的python库,比如numpy, pandas, scipy, xarray, cartopy等等等等。

1
2
3
4
5
conda install numpy
conda install pandas
conda install Scipy
conda install -c conda-forge xarray
conda install -c conda-forge cartopy

-c表明 chanel的意思,表明这个包在conda-forge的安装频道。

接下来,尝试下是否安装成功了。首先输入

1
python

进入交互,然后尝试:

1
import numpy

检查是否安装成功。

3. 安装Jupyter Notebook及其插件

3.1 安装

同样的,我们还是通过conda安装一系列Jupyter Notebook的插件

1
2
3
4
conda install jupyter notebook 
python -m ipykernel install --user
conda install -c conda-forge jupyter_contrib_nbextensions
conda install jupyterthemes

以上四条分别代表安装jupyter notebook ,为环境添加内核,安装jupyter插件功能,安装jupyter主题功能。

安装完成后,在终端输入jupyter notebook ,回车后会出现一串地址

image-20200522090912077

将其复制在浏览器地址栏即可(推荐使用Chrome浏览器)。

可以看到其主界面是这样子的:

image-20200522091232007

1:根目录列表

2:当前正在运行这什么东西

3:忽略这个东西,用不到的

4:扩展插件,这个非常有用,就是刚刚第三条语句安装的辅助插件,后边详细介绍

5:上传文件,WSL目录与windows目录是有些区别的,在一定程度上相当于开辟了一个独立空间,使用upload可以将其他位置的文件传至这里,但是WSL是可以调用windows下的文件的。

6:新建一项任务,python3就是新建python3脚本,通过其他设置,还可以使notebook支持其他语言(NCL是不行的)这里不做过多介绍。

3.2 插件设置

点击进入NBextension,有这么几项功能是一定要添加的:

image-20200522092213561

AutoSaveTime:自动保存时间,指定间隔时间自动保存

Table of Contents:支持生成markdown目录,让代码结构清晰,更有条理

Variable Inspector: 变量追踪,查看目前已使用过的变量的相关信息(名,大小,形状,值)

Execute Time:记录代码块运行时间

其余插件根据自己需要自行添加即可。

3.3 主题设置

主题指的是可视化界面的主题,比如你不喜欢白色的界面,想换深色背景,或者调整字体,字体颜色等等,都通过主题插件进行设置。

终端执行命令

1
jt -t xxx -f xxx -fs xxx -cellw xx% -ofs xx -dfs xx -T -T

-t 主题 -f(字体) -fs(字体大小) -cellw(占屏比或宽度) -ofs(输出段的字号) -T(显示工具栏) -T(显示自己主机名)

如果设置出现问题,那么输入

1
jt -r

进行初始化。

点击这里查看:主题字体大全

4. 使用Jupyter Notebook

参照3.1,点击new新建一个python3脚本进入编辑界面:

image-20200522094237828

这便是一个ipy脚本的可视化界面了。

红色框内是菜单栏,对脚本的设置、编辑等选项均在此处选择。

File中主要为文件保存,下载等等

Edit十分常用,包括删除,还原,复制,剪切,合并cell,也就是代码块

View主要是可视化界面的调整

Insert为插入代码块,插入标题等等

Cell主要为代码块的运行,停止,代码块类型设置等等

Kernel为该内核的重启,中断,重运行等等

Help主要是各类参考,建议使用前阅读

*绿色框内是工具栏,存放了一些快捷工具的按钮。*

鼠标在按钮上停留就会展示该按钮的作用,在此不一一介绍。

*蓝色框就是脚本主体了,一个灰色的块叫一个CELL,也叫一个代码块,就是在此处进行编程。*

之所以推荐JupyterNotebook,很大原因就是由于这个代码块的设计理念,你可以将一个脚本拆分为很多个代码块,比如说加载库,读数据,数据处理,绘图分别存放在四个代码块里,这样在debug时只需要修改运行有Bug的代码块,而耗时很长的加载库,读数据都只需要运行一次即可,同样,最终绘图时,只需要调整绘图指令,而不需要将全部脚本重新运行,这样大大节省了运行时间,提高工作效率。

另外需要说明的一点,Jupyter Notebook支持快捷键的使用,熟练掌握常用快捷键可以获得更好的使用体验。快捷键使用在help->Keyboard Shortcuts中查看和编辑。

如有问题或遇到BUG,请在评论区留言反馈。