背景:
作为一个气象er,在本科时期一直使用Fortran处理数据配合GrADs绘制图像,研究生期间改为MATLAB处理数据配合NCL绘制空间场+Origin绘制时间场。由于NCL在去年已经停止了更新,Python在机器学习和AI的背景下特别火,其能调用MATLAB、CDO、NCO等软件进行混合编程的能力打动了我。于是,我觉得背向NCL、面向Python。
一 、文章概览:
1、安装WSL
2、安装Miniconda或者Anaconda
3、安装Jupyter Notebook
二 、步骤说明
1、安装Win10子系统WSL
这一步比较简单,可以参考官方的文档或者下面这个文章:
https://www.jianshu.com/p/5504531493b1
说的很详细。
2、安装Miniconda或者Mnaconda
网上有不少人建议装一个简化版本的conda,即Miniconda,包比较小,安装速度也比较快,本人第一次尝试,也是安装的Miniconda,另外上面那个链接中也有Miniconda的安装,也可以参考。
详细如下:
第一步:wget命令获取最新的安装包:
wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
第二步:调整sh文件的可执行权限:
chmod 777 Miniconda3-latest-Linux-x86_64.sh
第三步:bash命令安装conda:
bash Miniconda3-latest-Linux-x86_64.sh
然后,一直安装,需要选择yes或者no,如果遇到询问是否把conda导入环境变量,切记请选择no,否则后续的使用过程中可能会出现问题
第四步:安装完成以后,系统会自动提示你退出当前的Linux终端,然后重新进入Linux
第五步:重新进去Linux环境后,提示符最前面有base字样,说明已经进入了conda基础环境,但是最好不要在这个基础环境下进行conda包的安装和使用
,因为不同的项目,需要的基础conda包版本可能不一样,最好为不同的项目开发,单独开一个环境(非base环境),这样可以避免原始conda环境出问题时要重新安装conda。如果遇到自建环境出现问题,直接删除自建问题就行了。
下面的步骤是创建一个新的conda环境(第五步中有说明原因),如果你不想创建新的环境变量,那么请直接跳过第六步。
第六步:创建非base的新环境:
conda create -n sfcWind(新环境变量名) python=3(python版本)
如何进入和退出sfcWind这个新环境变量呢?
conda activate sfcWindconda deactivate
安装完成以后,需要手动添加环境变量
vim ~/.bashrc
然后到最后一行添加:其中yy是用户名,根据自己的更改
export PATH = $PATH:/home/yy/anaconda3/bin
保存退出后,再执行
source ~/.bashrc
最后再尝试:
conda info --envs
这里就能看到创建的所有环境变量了。
然后参考上面miniconda的安装步骤,完成anaconda的安装
在安装完了anaconda之后,尝试启动它,第一个问题出现了:程序无法启动,conda list也报错,提示没有找到conda命令。这里演示一遍上面提到的添加环境变量的说明。

原来是安装了Anaconda之后,忘记设置环境变量了,环境变量怎么设置,往上翻,上面有。这一步完成以后,我们再用
conda info --envs
就能看到东西了。

这是我遇到的第二个问题,依然启动不了我的新环境变量,原因就是没有初始化。如何初始化呢?其实这里已经提示了,请仔细看:
conda init bash
(我这里是ubuntu,所以是bash,如果是其他系统的话,这个参数可就不同了)

这里就是初始化的回显了。

conda安装完了,进入到到自己新建的环境变量下,然后开始Jupyter Notebook安装
3、安装Jupyter Notebook
Jupyter Notebook的前面几个步骤还是比较简单的,看下面两张图就可以了(其实就是执行两条命令)
conda install jupyter notebookconda install -c conda-forge jupyter_contrib_nbextensions


到这里,貌似Jupyter Notebook安装结束了,但是当你执行jupyter notebook命令时,发现黑屏终端就一个光标在那里显示,其他什么也没有(连一个字母回显都没有),预期的浏览器也没有启动,这就是我遇到的第三个问题。
究其根因,还有配置文件没有修改!
如何修改?
第一步:先生成默认的配置文件
黑屏终端敲这个命令:
jupyter notebook --generate-config
第二步:修改配置文件,指定浏览器的驱动路径和禁止重定向
nano ~/.jupyter/jupyter_notebook_config.py
直接到最后,添加四行代码:
import webbrowserwebbrowser.register('chrome',None,webbrowser.GenericBrowser('/user/bin/chrome'))c.NotebookApp.open_browser=Truec.NotebookApp.browser='chrome'
然后保存退出
禁止重定向:依然打开上面的文件,找到
'#c.NotebookApp.use_redirect_file=True',
把前面#去掉,然后把True改成False,再次保存退出。
重点说明:
如果你想要win10下面的浏览器的话,这行代码:
webbrowser.register('chrome',None,webbrowser.GenericBrowser('/user/bin/chrome'))
中的最后/user/bin/chrome就需要用win10中的实际路径填写,比如我的路径:

执行这个命令,是能启动chrome浏览器的!!
到此,Jupyter Notebook也搞完了,下面启动,就能看到Win10中的Chrome启动了。

三、总结
一开始接触Python还是通过学习@摸鱼黑 大佬写的教程,这让我进步很快,在国外的stack论坛上也是高手如云,讨论激烈。Python让NCL连尾气都吃不到的高明之处就在于Python打通了多学科的融合,通过谷歌可以轻松搜索到你想要的东西和你遇到的问题如何解决。这里不得不提一下百度了,搜索下来都是各种广告…………
Python的开源的优点太过于明显,现在NCL也有了适配Python的包(PyNGL),以后基本一个Python也就够了。
最后:大家都读到这里了,就麻烦大家花几秒钟动动手指点一下文末的广告然后关闭,这样可以给作者一些鼓励,十分感谢。




