登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 XiaoMaFenJu 于 2023-2-27 17:55 编辑
0.前言
0.1什么时候需要虚拟机(vmware)安装ncl?win10/win11系统,电脑配置较高个人更推荐使用本教程,虚拟机(vmware)相比常见win10安装ncl教程中使用的直接安装的ubuntu系统更容易备份,操作也与win系统隔离
最开始,我是考虑在windows环境下直接安装,因为w10系统是有linux子系统的(虽然我是win11),这一步不难,网上能找到很多教程,anaconda3的安装也不难,有整合的编译包,官网可以直接下到,紧接着!安装ncl,使用conda命令安装就死活连不上,分析也肯定是国外源不行,换了好几次源,清华科大balabala....一直也不可以,就挺愁人,在这个过程中,慢慢了解了ncl以及后来转向的python两个库,pyNgl和pyNio(对于ncl我啥也不懂那种)。我觉得即使后来安在windows上还挺麻烦的,代码也不好管理,干脆就装个虚拟机算了,内存储存给大点就是,故开始以下教程。
1.虚拟机及Linux系统
我选择的是VMware Workstation,版本16.2.1,使用的是精简版(有能力的支持正版噶,仅作学习交流之用),下载地址:
- https冒号//xd点x6d点com/i-wz-9703.html
复制代码下载解压安装就可以。
有了虚拟机还需要下载Linux系统,系统的选择,我本来是从系统之家中(ps:很多盗版这个网站的)找,但是linux系统的链接都是某度网盘,我用的是ubuntu系统,下载地址是: - https冒号//ubuntu点com/download/desktop
复制代码你们也可以去找linux别的系统,只要下载的到iso文件就可以。
下载完成后,点开VMware Workstation Pro,点击创建新的虚拟机,选择典型,然后下一步,选择安装程序光盘映像文件,就选择刚刚下的os系统(我的是ubuntu)(系统文件后缀是.iso)如下图所示。[补充:最新的vm好像多了个选项,安装到单个文件还是多个文件的选项,我选了单个,但是我觉得应该都行]
选好以后下一步,填写用户名密码等,再点下一步,这里停一下,一定修改虚拟机位置!不要装到C盘!装到一个容量比较大的盘(你C盘很大就当我没说)。
然后再下一步,分配储存,我初步是给了50G,要根据你自己的情况来,有的人数据比较多就要给大点空间,不过这里体现了虚拟机的好处,不够可以直接扩展哈哈哈哈,限制你的是硬件不是软件,然后再下一步等系统安装就可以了。(ps:安装可能比较久,我好像是20多分钟,不要急)
安装好以后就可以继续我们的其他步骤了。
(再ps:这样安完系统是纯英文的,不过我想应该不影响大家使用噶:) ) 虚拟机补充:虚拟机和原系统初始是完全隔离的,为了方便进行使用,需要去单独打开一个共享文件夹,教程自行百度“vmware 共享文件夹 linux” https冒号//blog点csdn点net/truelove12358/article/details/96481792
补充:我后来发现,VMware可以直接复制电脑文件进虚拟机,操作和平常windows复制文件一样,不用开共享文件夹也行。
2.anaconda3的安装[以下操作均在虚拟机中完成] anaconda3在linux系统下的安装也是简单的,直接进入官网下载就可以了,这里直接放出下载地址:
进去不要直接点最上面的下载,那是win系统的,要划到最下面,点Linux下的第一个下载。 下载好后应该是在/home/用户名/Downloads里面,这时候按ctrl+alt+T,会出来命令框,我们输入 - sh /home/用户名/Downloads/文件名
复制代码注意大小写和空格,文件名要包括文件类型,如anaconda3 .sh(懒的话也可以去找到那个文件看属性,复制它路径, 但是注意,命令行的粘贴不能ctrl+v,你需要右键然后paste)(补充一下,文件名很复杂,你输入的时候要输很多,你可以先给它重命名,比如改成anaconda.sh就简单多了) 然后就是一直回车,也就是看免责条款之类,然后会弹出来[y/n]?,我们输入y就可以,然后应该还有一次需要按下回车,(那个估计是改变安装位置?)我们因为是虚拟机也不讲究那么多,直接回车就好。等待安装完成就可以。安装完成后关掉命令框,重新开一个,在名字前应该会出现(base),
那我们可以进行下一步。(这里其实是默认每次都进入base环境,如果你就用来搞ncl的话我个人觉得不用管,如果和其他应用有冲突的话自行百度取消噶,也不难)
3.ncl的安装[如果你打算用python可以不看本条]
ncl的安装很简单,换到linux系统后,我发现我连源都不用换了,直接下列代码复制就可以安装了(我以前以为是网络问题)[很离谱,经过多位同学测试,linux系统原始源安装ncl下载成功率100%,然而在win系统上加装子系统再命令安装ncl就看脸,不成功就一直不成功] - conda create -n ncl -c conda-forge ncl
复制代码这里先只安装ncl,因为之前几个一起装总装不成我也不知道为啥.... 输入以后如果网络正常,就会到让你输入[y/n],输入y开始下载,等完成了就好。(如果网络有问题还是找不到包...建议找个梯子..实话...你可以在4中看到我还是用了梯子) 下载完其实就是安装好了,就也不用改什么变量,但是要注意,要输入 激活ncl环境才可以使用ncl(以后每次重新进都要输入!)(再ps:如果要退出本环境回到base,请输入 conda deactivate),这时候你能看到名字前面由(base)变为(ncl),你可以试着输入ncl如果弹出的信息是
- Copyright (C) 1995-2019 - All Rights Reserved
- University Corporation for Atmospheric Research
- NCAR Command Language Version 6.6.2
- The use of this software is governed by a License Agreement.
- ncl 0>
复制代码 那我觉得是安装好了,具体是不是成功与否我不太确定阿巴阿巴...(因为我是打算用pyngl和pynio的,ncl只是练手,就没管了)(再ps:网上的教程好多都是装了ncl再装下面的两个库我觉得没必要但我还是照做了(我菜),具体会不会有影响你们可以试试,我认为是没啥关系的w)
补充:近日打算使用ncl,但发现并不能运行,经过查阅资料,是需要进行环境变量的设置,具体可以百度教程,很多安装ncl的教程中都有这一步,具体就是在base环境下(不确定在ncl环境下是否可以?各位可以自行尝试),打开.bashrc文件,打开文件的方式是输入如果提示not found 和 很多行sudo ... ,那说明你没有安装过vim,需要安装一下,代码是安装完后再输入vim .bashrc就好。(补充一下,输完上面的安装命令会需要你输入linux系统的密码,linux系统输入密码的时候不会有显示,没有***之类的,所以不要大惊小怪,直接输入密码然后回车就可以)执行完vim .bashrc以后,shift+g键跳到尾部,按i键进入编辑模式,输入以下代码,注意xiaoma要改成你系统的名字,别的不需要改,- export DISPLAY=:0.0
- export PATH=/home/xiaoma/anaconda3/envs/ncl/bin:$PATH
- export NCARG_ROOT=/home/xiaoma/anaconda3/envs/ncl
复制代码 改完后esc退出编辑模式,然后键盘输入:wq回车,就会保存退出,之后再输入source .bashrc,变量就改完了。
如何测试是否成功呢?
测试方法:进入ncl环境后输入
- ncl $NCARG_ROOT/lib/ncarg/nclex/gsun/gsun02n.ncl
复制代码 如果可以运行出图即成功。
4.pyngl和pynio的安装
这一步和上一步差不多,区别就是我直接命令安装找不到包(这次真的是网络原因),我就正好在电脑里捡到了一个梯子(vpn)(这个没有推荐,大家问问朋友或者学校之类,仅供学术用噶不要做违法的事情),挂了梯子以后就能用了,命令如下:
- conda create -n pyncl -c conda-forge pyngl pynio
复制代码 这里还是只加了这两个库,(问就是我加多了就安不成,一直在等待,挂梯子也是,所以xarray之类都先没装)
同样的,输入以后如果网络正常,就会到让你输入[y/n],输入y开始下载,等完成了就好。
下载完以后,同样的也需要激活环境才可以用,命令如下 激活pyncl环境才可以使用ncl(以后每次重新进都要输入!)(再ps:如果要退出本环境回到base,请输入 conda deactivate),这时候你能看到名字前面由(base)变为(pyncl),你可以试着输入python3,然后输入import Ngl(注意大小写!!!),如果没报错,而是让你继续输入指令(如下)
- (pyncl) xiaoma@ubuntu:~$ python3
- Python 3.6.7 | packaged by conda-forge | (default, Nov 21 2018, 02:32:25)
- [GCC 4.8.2 20140120 (Red Hat 4.8.2-15)] on linux
- Type "help", "copyright", "credits" or "license" for more information.
- >>> import Ngl
- >>>
复制代码 那么恭喜你!安装成功了!!!!
5.Jupyter的安装和应用
按理来说,做到上面一步其实也可以,因为你已经可以运行相关的py文件了,但是,相比于在win系统里写好然后拿到虚拟机里运行再回去改再来运行(问就是我菜要改好多次代码),谁不愿意干脆在虚拟机里写代码然后紧接着运行呢!我也是这么想的!win系统以前我用的pycharm,觉得很好用(很酷),后来也是因为很多库还要自己下(那时候我没在电脑里捡到梯子),还要自己装好麻烦,就改到anaconda的Jupyter中的notebook了,可以直接出图我觉得也挺好的,正好linux里也装了anaconda,我就去找教程开始初始化Jupyter了。教程如下:
在base环境下:
先执行 pip install jupyter_contrib_nbextensions //网络有问题就挂梯子,不过我是没问题
再执行 jupyter contrib nbextension install --user //这里--user不用改
做完以后
输入ipython,紧着输入以下内容(最后的Out2的内容要复制备用!)(输入完passwd()以后会出现Enter password,我们直接输入密码,它不会显示你输入的内容而已,下一行就是让你重复输入确认密码,输入完都回车):
- In [1]: from notebook.auth import passwd
- In [2]: passwd()
- Enter password:
- Verify password:
- Out[2]: 'argon2:$argon2id$v=19$m=10240,t=10,p=8$dNoC/suYvnQ3+2wdq2SGpw$bZNkHCGYqg/JrTQRZsXaQA' #这个秘钥要copy备用
复制代码 获得密钥以后,可以直接新开一个命令框,输入一下内容
(ps:root模式这一步我不太清楚是否需要,linux系统上次接触是很久以前了,具体原理不清楚,有动手能力强的可以试试不在root模式下进行) 然后你可以设置你的root模式的密码,设置完以后输入 这里可能会提示没有vim的包,但是会提示你安装vim的命令,(具体命令我确实忘了阿巴阿巴反正就是install那一类啦),复制它提示的命令安装完再运行上句命令即可。
然后,正常的话,会打开那个文件,(我的里面啥也没有)按i进入编辑模式(左下角会有INSERT),复制以下内容进去:[ 不包括中文:( ]
- c.NotebookApp.ip = 'xx.xxx.xx.xxx' 即对外提供访问的ip,这里不是让你写xx,是数字...
- c.NotebookApp.port = 5555 即对外提供访问的端口,也可写8888
- c.NotebookApp.open_browser = False False即启动不打开浏览器
- c.NotebookApp.password = u'argon2:$argon2id$v=19$m=10240,t=10,p=8$dNoC/suYvnQ3+2wdq2SGpw$bZNkHCGYqg/JrTQRZsXaQA' 这个就是上面生成的秘钥,把自己的替换上去
- c.NotebookApp.notebook_dir = u'/root' 即设置jupyter启动后默认的根目录
复制代码 输入完按esc退出编辑模式,然后我就直接把这个命令框关掉重开了一个(问就是菜,忘了退出的命令了)
做完这些就可以运行啦,运行还是比较简单的,base环境下(因为我们是在base环境安装的(埋下伏笔))输入 就会弹出来好多代码,然后弹出浏览器的具体界面(对,notebook就是用你的浏览器)但是我更喜欢输入下面的,就不会弹很多代码。(ps:做完这些以后我突然想,好像不用做上面的配置,直接输入jupyter notebook也可?,因为我输了我的ip和端口竟然还打不开(可能记错了),希望你们先输最下面的代码试试可以不可以)
做完这个,我也算松了一口气,折磨我许久的ncl终于弄好了!(饿哈哈哈哈哈哈哈,ncl鸡汤来咯~)
但是!我新建一个py文件,输入import Ngl以后,发现找不到库.........
这个还是比较好解决,大概查了一下,就是因为我们的Ngl和Nio都是安装在pyncl的新环境里,而jupyter是在base环境,还是比较好解决的,就是向Jupyter里添加我们的conda环境,具体方法如下:
先进入pyncl环境然后安装ipykernel
- conda activate pyncl
- conda install ipykernel
复制代码 然后
- python -m ipykernel install --user --name pyncl --display-name "pyncl"
复制代码 弄完以后我们再进入jupyter就会发现右上角的new里变了
多了一个pyncl,我们新建py文件时选它就可以了,这时候进入再输入import Ngl就不会报错了,这样也就算差不多达到我初步学习的目的了。
(ps:有人会想,那我为啥不直接再pyncl环境里安jupyter呢,这个我搜了一下,是会产生依赖冲突,所以最好不要这样做或者升级jupyter)
6.后记
兜兜转转一周总算弄完了,也是有很大收获,大学的课程还有原始ncl的学习,还有很多大家仍然在用我曾认为很落伍的Fortran,但也有最新的GeoCAT(是的!ncl的团队又放弃pyNgl和pyNio转向新库GeoCAT了,这里多说几句,目前还没看到相关的安装教程,但是这个以后也是肯定会用的越来越多,因为pyNgl其实也是有缺点,等我学习完pyNgl等有空再试试安装这个吧;) ),这次也是作为一个初学者,想要来试着学习下这个可以气象人说不可或缺的工具(?),本来以为不难,实际还是我太肤浅....
希望大家都可以坚守本心,受得苦中苦,争做优秀气象人,为我国气象事业添砖加瓦!
#补充
直接conda-forge安装失败时可以考虑具体版本,如conda install -c conda-forge/label/cf201901 xarray
|