本文将从以下几个方面介绍Python并选择其中最流行的发行版之一Anaconda来进行Python的安装配置。

  • Python介绍
  • Python发行版介绍
  • Anaconda的安装配置
  • 工具推荐

人生苦短

仅此小节无法完全解释Python的来龙去脉。作为“胶水语言”,Python在1991年正式发布。Python的出现得益于大多数编程语言,其吸收了很多语言的优点,Python最重要的设计哲学就是代码的易读性。并且作为高级脚本语言,Python还具有非常多的优点。没有所谓最好的编程语言,只有更适合解决某一问题的编程语言。

作为高级脚本语言,Python在数据分析和科学计算中大放异彩,并且随着机器学习的发展,Python逐渐成为机器学习领域最受欢迎的的语言之一。由于Python的可读性,以及易于编写等特点,Python在地球科学领域也得到了广泛应用,尤其是地球科学数据处理和可视化方面,比如地球科学数据分析和可视化库Iris,应用于数值模式数据处理的wrf-python,气候数据处理库CDAT以及地球科学可视化库NCL的Python版PyNGL。此外,还有很多其它气象领域的库:利用机器学习预测强对流,基于探空数据的强对流(超级单体,龙卷风等)识别等等。

在开始介绍Python的众多发行版之前,先说一下Python的两个主要版本:Python2和Python3。刚接触Python的人都会纠结于应该选择哪个版本学习,我在刚接触的时候也有过这个问题,但是现在这个问题已经不重要了:

⚠️ 官方即将放弃对Python2的更新!而且众多主流库的维护者也都先后宣布了放弃对Python2版本的支持。

当然如果你使用的领域对Python的版本没有要求,那么你仍然可以使用Python2,如果你使用的库已经不再支持Python2,那么仍然建议你选择Python3。而且随着Python3的迭代更新,Python3的速度也在逐渐超越Python2。

选择好你要使用的Python版本之后,来看一下应该选择什么发行版吧。

如何选择发行版

Python存在非常多的发行版,比如WinPython,Enthought Canopy,Anaconda等等。WinPython是Windows7/8/10系统上的开源Python发行版(我没使用过,不是很了解)。Canopy和Anaconda是目前使用比较多的发行版(前者我也没用过==),所以推荐Anaconda(手动滑稽)。

Canopy和Anaconda都是由商业公司提供的Python解决方案。两者各有优势,相比而言Anaconda对Python的支持更全面,而且其在数据科学和科学计算领域具有不可撼动的地位,近些年来一直是数据科学领域最受欢迎的Python发行版。Anaconda发行版的包管理器Conda在安装气象领域的很多库时非常方便,比如安装PyNGL,一行命令即可。当然不仅是安装气象领域库,对于其它领域,比如机器学习,地理信息等领域的库时基本都能提供一键解决方案。而且NCL的也可以通过Conda来安装,此外,rstudio也可以通过Conda安装,这对于没有服务器root权限的用户来说非常方便。Conda基本上能够解决很多依赖问题,非常方便。

鉴于以上原因,推荐使用Anaconda。原生Anaconda提供了很多Python库,当然其中很多是气象领域都不会使用的。如果你的机器上存储小,可以考虑安装Miniconda,这是Anaconda的简化版,其仅包含Conda及其依赖库,当需要安装其它库时可以通过conda包管理器进行安装。

Anaconda 安装配置

根据你所使用的平台下载相应的anaconda版本。下载时可以去anaconda官网,但是有时候官网的下载速度会比较感人。国内很多机构都同步了anaconda的官方镜像,也可以直接从这些国内镜像站下载,比如清华大学开源镜像站,基本包含了anaconda和miniconda发布的所有版本。

上图中列出了当前Linux,MacOSX和Windows系统上Miniconda3(Python3发行版)的最新版本。如果在Linux上,下载之后执行以下命令进行下载安装(以Miniconda3为例):

1
2
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
./Miniconda3-latest-Linux-x86_64.sh  # 假设下载的为此版本,其余Linux版本类似

如果没有执行权限,在执行上述安装命令之前,先更改此文件的权限,赋予其可执行权限:

1
chmod a+x Miniconda3-latest-Linux-x86_64.sh  # 赋予所有用户此文件的可执行权限

安装期间,需要根据提示进行操作,如果需要更改安装路径,可在相应的安装步骤时更改路径(如下图)。

安装完成之后可能会提示是否加入环境变量,这里要注意的是:如果你的系统有一些库有特殊依赖,建议不要直接添加到环境变量,因为anaconda默认会将anaconda添加到当前环境变量之前,具有优先搜索权,可能会导致有特殊依赖的库出现问题。

如果是Windows和MacOSX系统版本,可以分别下载exe和pkg版本,根据提示直接安装即可。

Note

⚠️注意: Windows系统只需要在安装时选择不添加到系统环境变量即可,使用时利用anaconda提供的终端即可。如上图所示。

安装完成之后,需要进行一些配置,比如安装库时所使用的源。由于anaconda默认的源服务器位于国外,国内在安装时速度会比较慢。因此,安装之后可以配置为国内的镜像源,从而提高下载速度。如果是教育网用户,可以选择高校建立的镜像站,比如清华大学开源镜像站,中国科学技术大学开源镜像站,南京大学镜像站等。此外,也可以选择一些企业提供的镜像站。

Note

⚠️注意: 南京大学镜像站可能无法访问。有些高校建立的镜像站并不包含anaconda镜像源,因此建议使用清华大学镜像站或者中国科学技术大学镜像站。当然你也可以根据需要选择企业镜像站。

笔者选择的是清华大学的镜像源。这里以清华大学镜像源为例,进行anacodna源配置,以下是anaconda官方源的清华大学镜像站配置命令:

1
2
3
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes # 安装时显示库对应的源通道链接

此外,conda还提供了一些第三方源,对应的清华大学镜像源配置为:

Conda Forge

1
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

R语言对应的国内镜像源链接配置为:

1
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/

安装NCL时需要通过Conda Forge源,可以通过以下命令进行安装:

1
2
3
4
5
6
7
conda create -n ncl_stable -c conda-forge ncl  
# 创建ncl_stable虚拟环境,通过conda-forge源安装 
# 注:执行了添加conda forge源的命令之后,安装时不需要指定 -c conda-forge 选项,
# 否则默认使用 conda-fore 官方源而不是清华大学镜像源安装,-n ncl_stable 选项中
# 的 ncl_stable 可以是任意名称
# !!注意!! 上述命令仅能在支持NCL的平台安装,Windows系统仍然无法使用NCL(可以在拥有
# linux子系统的win10安装)

创建 ncl_stable 虚拟环境,通过 conda-forge 源安装 NCL

⚠️注意:执行了添加conda forge源的命令之后,安装时不需要指定 -c conda-forge 选项,否则默认使用 conda-fore 官方源而不是清华大学镜像源安装,-n ncl_stable 选项中的 ncl_stable 可以是任意名称

⚠️注意: 上述命令仅能在支持NCL的平台安装,Windows系统仍然无法使用NCL(可以在拥有linux子系统的win10安装)

codna包管理器的功能十分强大,此篇无法将其囊括在内,后续会进行专门讲解。

pytorch

1
2
3
4
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

# for legacy win-64
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/

还有一些其它第三方源的配置,具体可参考清华大学开源镜像站anaconda使用帮助页。

除了codna维护的第三方源之外,其他机构同样也在维护一些库的安装源。当安装某一个库出现问题的时候可以通过Google搜索:库名+anaconda等关键词获取是否有第三方提供的安装包。对于Windows系统,有一个网站提供了很多预编译的库,除了使用conda包管理器安装之外,也可以直接下载预编译好的库进行安装。

pypi

但并不是所有的库都能能使用conda进行安装,有些库还是需要使用pip工具进行安装(pip也是一个python的包管理工具)。当使用pip默认源安装时经常会因为连接超时导致中断,此时同样可以将pip所使用的PYPI源替换为国内镜像源。此处同样以清华大学开源镜像站为例子:

1
2
pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

至此,已经基本完成了Python的安装和配置工作。

工具推荐

完成了上述安装配置操作之后,就可以开始使用python了。下面给大家推荐一些工具,来入门或者更高效的coding。

如果你是从MATLAB转过来的,那么你可以从Spyder开始,Spyder提供了类似MATLAB的用户操作界面,可以帮助你从MATLAB逐渐转到Python。此外,你也可以使用Pycharm或者Jupyter。Pycharm是非常受欢迎的用于Python开发的集成开发环境(IDE),提供代码分析、图形化调试器,集成测试器、集成版本控制系统,并支持使用Django或Flask进行网页开发。当你使用Python进行项目开发时,建议使用Pycharm。

Jupyter是基于Web的代码编辑和执行工具,可以直接在浏览器网页中编辑并执行代码,结果同时会显示在网页中。Jupyter支持Markdown,可以在写代码的同时附加更多的文档说明。如果需要发布项目示例或代码文档时可以选择此工具。Jupyer的前一代是Jupyter Notebook,新一代的Jupyter Lab在界面和功能上都更加完善,可以尝试直接使用Jupyter Lab。

Anaconda默认提供了Jupyter Notebook,Windows用户可以在Anaconda安装目录找到Jupyter Notebook,直接双击启动即可。Linux和Mac用户,可以从终端执行jupyter notebook启动。以下是启动示例:

jupyter notebook的使用见下图:

除了上面提到的工具之外,你也可以使用Sublime Text,Atom,Visual Studio Code,Eclipse等工具开启你的Python之旅。