介绍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子系统还未安装。
1703版之后的win10把Ubuntu作为一个软件放在了应用商店。打开应用商店,直接下载Ubuntu。
下载完成之后打开Ubuntu就自动下载了。然后就是设置密码用户名(建议不要以admin,root这类用户名作为自己的用户名,后续使用中容易出现权限问题)。
至此,WSL就启用成功了。
2. 安装Miniconda
进入miniconda官网下载地址,找到Linux安装文件(如下图),选择python3.7版本,右建选择复制下载链接:
之后,打开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 | conda install numpy |
-c表明 chanel的意思,表明这个包在conda-forge的安装频道。
接下来,尝试下是否安装成功了。首先输入
1 | python |
进入交互,然后尝试:
1 | import numpy |
检查是否安装成功。
3. 安装Jupyter Notebook及其插件
3.1 安装
同样的,我们还是通过conda安装一系列Jupyter Notebook的插件
1 | conda install jupyter notebook |
以上四条分别代表安装jupyter notebook ,为环境添加内核,安装jupyter插件功能,安装jupyter主题功能。
安装完成后,在终端输入jupyter notebook ,回车后会出现一串地址
将其复制在浏览器地址栏即可(推荐使用Chrome浏览器)。
可以看到其主界面是这样子的:
1:根目录列表
2:当前正在运行这什么东西
3:忽略这个东西,用不到的
4:扩展插件,这个非常有用,就是刚刚第三条语句安装的辅助插件,后边详细介绍
5:上传文件,WSL目录与windows目录是有些区别的,在一定程度上相当于开辟了一个独立空间,使用upload可以将其他位置的文件传至这里,但是WSL是可以调用windows下的文件的。
6:新建一项任务,python3就是新建python3脚本,通过其他设置,还可以使notebook支持其他语言(NCL是不行的)这里不做过多介绍。
3.2 插件设置
点击进入NBextension,有这么几项功能是一定要添加的:
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脚本进入编辑界面:
这便是一个ipy脚本的可视化界面了。
红色框内是菜单栏,对脚本的设置、编辑等选项均在此处选择。
File中主要为文件保存,下载等等
Edit十分常用,包括删除,还原,复制,剪切,合并cell,也就是代码块
View主要是可视化界面的调整
Insert为插入代码块,插入标题等等
Cell主要为代码块的运行,停止,代码块类型设置等等
Kernel为该内核的重启,中断,重运行等等
Help主要是各类参考,建议使用前阅读
*绿色框内是工具栏,存放了一些快捷工具的按钮。*
鼠标在按钮上停留就会展示该按钮的作用,在此不一一介绍。
*蓝色框就是脚本主体了,一个灰色的块叫一个CELL,也叫一个代码块,就是在此处进行编程。*
之所以推荐JupyterNotebook,很大原因就是由于这个代码块的设计理念,你可以将一个脚本拆分为很多个代码块,比如说加载库,读数据,数据处理,绘图分别存放在四个代码块里,这样在debug时只需要修改运行有Bug的代码块,而耗时很长的加载库,读数据都只需要运行一次即可,同样,最终绘图时,只需要调整绘图指令,而不需要将全部脚本重新运行,这样大大节省了运行时间,提高工作效率。
另外需要说明的一点,Jupyter Notebook支持快捷键的使用,熟练掌握常用快捷键可以获得更好的使用体验。快捷键使用在help->Keyboard Shortcuts中查看和编辑。
如有问题或遇到BUG,请在评论区留言反馈。