当前位置:   article > 正文

miniconda的安装与配置_NCL2Python|windows系统安装Pyngl和Pynio

python安装了ncl还用装ngl和nio吗

自从NCL停更之后,python的知名度都不断提高了,我也开始了python学习之旅,但是还没开始,就被如何安装Pyngl和Pynio给困住了。网上和官网给的教程都是Linux系统或者OS系统,有老板服务器的同学压根不用担心这个问题,没有任何影响。但是没有服务器就有点惆怅了。

5cf5f3229138dbbf9de54ba8c47ee2d7.png

为什么Windows不能直接安装

我想到电脑上安装了Aanconda,那能不能安装PyNIO和PyNgl呢,果不其然出错了,这到底是什么原因?我接着输入anaconda search -t conda pyngl,查看pyngl各个版本信息,发现4个pyngl和pynio安装包根本就没有windows系统的版本,而windows里面安装的环境都是windows下的。因此这就是导致windows系统不能安装Pyngl和Pynio的原因。

因此小结一下:安装Pyngl和Pynio需要在linux环境

3a6ad103fe3f6a7b9b3fc05bb59e39c3.png

385b04cbb7b186b4765b91e5f178008a.png

但尽管如此,如果你的电脑是Win10版本,那么你仍然可以安装这两个包。方法是

  1. 先安装linux子系统;
  2. 安装miniconda或者Aanconda环境;
  3. 使用conda安装NCL包和PyNgl和PyNio。

如何在windows中的linux子系统上安装呢?

  1. 安装linux子系统
  • 开启开发者模式。系统设置 -> 更新和安全 -> 针对开发人员 -> 选择开发者模式

点击后会自动安装环境。

4ae4b7902bd8b4588397f27ef1042e63.png
  • 勾选适用于windows的linux的子系统,点击确定,之后重启电脑。

c9650b6a2a50ef6f719b290e74e6e651.png
  • 安装Linux子系统,有两种方法安装。第一种是Microsoft store里面直接搜索Ubuntu进行安装。

18c9cdc7b506dd2236b0f88c533c1ff8.png

c63c5de1df526f18f638ad9280ab57ba.png

第二种方法是在win10 命令行内进行安装。Win+R打开cmd,输入bash回车,然后选择y即可安装。

c1ab2dc19aa3bcac38c6c4bd55076321.png

注意:

(1)刚刚安装好Windows 10版本,Linux子系统可能没有处于启用状态。或者安装好linux子系统之后,打开之后输入任意键就闪退了。这时管理员权限的命令提示符(或PowerShell)下输入下面代码,确保子系统可用,然后重启。
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
(2)如果输入bash安装失败,可用lxrun /install /y,即以root登录。
  • 初次进入Linux子系统需要设置Linux的用户名及密码。记住输入密码时屏幕上没有显示,这时正常的现象。切换搭配root状态是输入 sudo -s,然后输入密码。
  • 更改apt源(选做)。因为Linux子系统的apt源使用的是官方源,需要连接到国外的服务器。所以安装一些软件时下载会很慢,我们可以改用国内的镜像apt源,不改也没有什么问题,不是很影响使用。国内的有阿里源、清华大学源、科大源和网易源,这里推荐科大源。

对原始文件备份:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

编辑源配置文件/etc/apt/sources.list,可以用vi编辑,讲文本内容替换为:

  1. deb https://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
  2. deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
  3. deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
  4. deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

保存运行:sudo apt-get update

2. 安装miniconda或者Aanconda环境

  • 下载安装linux版本的miniconda或者anaconda,建议选择更小的miniconda。链接:https://conda.io/en/latest/miniconda.html
  • 输入以下命令安装:①bash Miniconda…sh;②source ~/.bashrc 更新bash文件
  • 测试安装是否成功,输入conda -V,如果出现相应的版本号即表明安装成功了。

注:默认安装的linux子系统的目录在C:UsersyxkAppDataLocalPackagesCanonicalGroupLimited.Ubuntu16.04onWindows_79rhkp1fndgscLocalStaterootfshome

3. 安装NCL及PyNgl、PyNio

  • 安装NCL,输入:conda create -n ncl_stable -c conda-forge ncl,此时可以看见miniconda3envs中出现了一个名为ncl_stable的文件夹,即是ncl的安装包。安装地的。需要调用时,先输入source activate ncl_stable,再输入ncl xxx.ncl即可以执行相应脚本。
  • 安装PyNgl、PyNio,参考官网的教程(http://www.pyngl.ucar.edu/Download/ )。

输入:conda create --name pyn_env --channel conda-forge pynio pyngl

或者conda create -n ncl_to_python -c conda-forge xarray netcdf4 scipy pyngl pynio ncl即可。

可发现miniconda3envs下多了pyn_env或者ncl_to_python文件。

调用:需要调用PyNgl、PyNio包的时候,输入source activate pyn_env或source activate ncl_to_python,然后输入python xxx.py脚本即可以运行。

注:有时候发现安装pyn_env和ncl_to_python之后,输入import Nio时报错,如下图:

d59b002a860ba7df9bd2961f7e1b0060.png

此时的解决方法是:conda create --name pyn_env --channel conda-forge/label/cf201901 pynio pyngl 来下载pyn_env。至于ncl_to_python目前还没有很好的解决方法。但是ncl_stable+pyn_env的功能=ncl_to_python

  • 关于linux子系统运行的疑问:

问题一:找到根目录之后,新建或者复制了文件数据之后,打开ubuntu,为什么输入ls看不到相应的文件?

解答:这个问题确实存在,这是linux 子系统的一个bug。你关闭ubunt终端之后重启,在此打开进入该目录下输入ls,即可以看到新建或者复制的文件了。

总结:有任何文件的更改,特别是通过windows环境下的复制粘贴以及新建的方式,一定得重启ubuntu终端才能生效。

问题二:如何进入C盘或者D盘,输入cd D:会报错,使用cd ../../../一直后退也不行,只能到根目录下面就停止了,那是不是只能在根目录下运行相关程序呢?

解答:要进入其他盘,得输入cd /mnt/。即可以看到各种磁盘了,此时就可以进入C盘/D盘操作了。

问题三:有时候执行cd命令,进入进出文件夹时,都会出现Permission denied问题,这到底是怎么回事?

解答:这是因为权限不够的问题,建议输入sudo -s,进入root命令之后,再去执行相应的命令。但是在root命令下得格外小心哦。


实例运行:

问题:用pynio pyngl读取nc数据,并输出相应的图像

前期处理:①下载数据,仅有7kb

http://www.ncl.ucar.edu/Document/Manuals/NCL_User_Guide/Data/tas_mod1_hist_rectilin_grid_2D.nc​www.ncl.ucar.edu

②查看nc数据的属性,了解里面的数组信息,在Python的环境下,可以通过

gdalinfo name.nc 查看

或者

import netCDF4 (得安装netCDF4,可使用pip install netCDF4)

dataset = netCDF4.Dataset('tas_mod1_hist_rectilin_grid_2D.nc')

print(dataset)

v2-d5c981c686890c95a7dea5c3f416b0a6_b.jpg

如何运行:打开ubuntu——输入source activate pyn_env,进入相应的test目录(包括下载的tas_mod1_hist_rectilin_grid_2D.nc数据和一个test.py脚本,该脚本代码如下)。在该目录下输入python test.py即可运行。

153ffd02bd14bf010a26daba7ce95110.png
import 

结果:

da6099bf809e2da2af26718c9b6662a3.png
关注“happy科研”公众号和CSDN博客(ID:weixin_44267600),获取更多有趣有料的干货。
有任何问题,请发邮件至:yfangnuist@gmail.com
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/317116
推荐阅读
相关标签
  

闽ICP备14008679号