Python 01 | 如何快速配置一个满足地球科学基本使用要求的Python环境?

Introduction

前面我们从NumPy入手,开启了我们的Python历程。尽管科学计算也许是我们使用Python的首要目的,仍需要以Python的基本体系作为支撑。

因此,我们将开启一个新栏目,简洁地介绍Python的基本语法与使用等。从基本数据类型,到控制流语法结构;从独特的推导式,到普适的函数与类。

我们将深入学习Python的原初设计理念。

这次的文章就从用几行命令快速构建一个满足日常基本开发要求的地球科学专用Python环境开始吧!

关于Conda

概念与定义

Conda 是一种跨平台的包管理和环境管理系统,可以方便地安装和管理 Python 的库和其他依赖项。通过创建隔离的虚拟环境,以便在不同的项目之间使用不同版本的 Python 和库,而不相互冲突。

相较于从Python官网直接下载后创建Python环境,并使用pip进行管理。Conda管理Python项目的优势在于:

  • 环境隔离: 可以针对不同项目要求创建不同的虚拟环境,使用特定的 Python 版本和库,从而避免冲突和版本问题。

  • 迁移便捷: Conda 可以创建环境的配置文件,以便轻松地在不同计算机上重建相同的环境。同时,还可以利用conda-pack等方式便利地将本地环境打包迁移至离线工作站和超算集群等。

  • 简单易用: Conda 使用简洁的命令行语句便可轻松安装、更新与卸载第三方库和管理虚拟环境。

下载与安装

由于Anaconda过于臃肿,其附带的UI也有些鸡肋,我们常用它的轻量级发行版MiniConda。而Anaconda官网下载存在网络不稳定的问题,所以对于国内玩家推荐从清华镜像获取。

MiniConda清华镜像

https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda

下载完后,一路next完成安装即可。

特别注意,MiniConda2对应Python 2.x版本,MiniConda3则对应Python 3.x版本。

Conda基本操作

创建虚拟环境

安装好MiniConda之后,我们可以在「开始」菜单中打开Anaconda Prompt (miniconda3)

此时,Conda环境为默认的base环境,我们可以在命令提示符C:\User\xxx>前的(base)可以看出。

一般情况下我们不修改默认环境base,而是创建新的虚拟环境。当我们虚拟环境出现问题,删除虚拟环境重新在base的基础上创建即可。从而避免base环境损坏而需要重装MiniConda软件。

下面我们解析创建虚拟环境的命令:

conda create -n test-env
  • conda:调用Conda包管理器命令。

  • create:创建新的Conda虚拟环境。

  • -n:于指定新环境名称。

以上是以默认方式创建名称为test-env的Conda虚拟环境。如果我们需要设定一些更丰富的选项,可以在以上命令之后追加参数:

conda create -n py310-test -c conda-forge python=3.10

这里我们追加了更多自定义参数,包括:

  • -c conda-forge: 指定安装包的来源渠道(channel)。conda-forge 包含了大量的第三方库及丰富的版本,同时相较于直接从Conda社区获取第三方库,其下载速度具有明显优势。

  • python=3.10:指定安装的 Python 版本,此处为 Python 3.10。

关于Python版本的选取

与我们使用APP或MATLAB之类的闭源语言不同,由于适配性等问题,通常不推荐安装最新的Python发行版。

依赖于开源社区的第三方库,新版本Python可能存在版本冲突、依赖项版本过低和Python底层改动导致的bug等问题。

所以,更推荐使用相对早数个版本的Python,以获得更好的适配体验。如上例中,我们安装的依然是Python 3.10,尽管目前Python 3.12已经发布相当长一段时间。

如果虚拟环境损坏,或者不再需要该环境,我们就可以将其移除:

conda env remove -n py310-test

激活虚拟环境

安装好虚拟环境后,我们可以激活它,从而开始自定义。

我们首先可以查看本机当前存在的虚拟环境:

conda env list

可以看见py310-test已经存在本机上。于是,我们可以切换到该环境:

conda activate py310-test

切换成功后,命令提示符前的(base)变成了(py310-test)

若需要退出当前环境返回base环境,则可以使用deactivate

conda deactivate

安装第三方库

我们重新切换回刚刚创建的py310-test环境,下面演示如何安装第三方库。

我们首先查看当前存在的Python库:

conda list

Conda同样默认支持Python原生的pip命令:

pip list

我们尝试安装地球科学领域常用的栅格处理第三方库Rasterio

conda install -c conda-forge rasterio

如上图所示,Rasterio需要相当多的依赖项才能工作。Conda的优势便在于,对于第三方库依赖环境的支持较pip更好。

使用conda list可以看见Rasterio已经安装成功:

对于一些未被Conda收录的小众库,或者需要使用源码安装,我们依然需要使用pip安装:

pip install solarpy

快速配置满足地球科学基本要求的环境

Mamba

在介绍如何快速配置一个满足我们地球科学领域基本程序设计要求的Conda虚拟环境之前,我们首先需要聊聊Mamba。

Mamba 是一款用于 Python 和 R 环境的高性能包管理器,采用 C++ 构建。它是一款跨平台工具,旨在提供比传统 Conda 包管理器更快、更高效的包安装和管理。

其主要特点包括:并行加速下载、兼容性支持(Mamba会检测当前虚拟环境的第三方库与新安装库之间是否存在冲突,并自动升降版本以适配相应版本)、跨平台支持(支持Windows、Linux、MacOS等多平台操作系统)等。

配置之前我们首先安装它,并使用它来进行包管理。

conda install -c conda-forge mamba

我们尝试使用它安装一个第三方库,其基本用法与Conda一致:

mamba install -c conda-forge proplot

可以看见,由于版本冲突,Mamba将自动进行升降级。

应用案例

万事俱备,那么接下来我们就用简短的几行命令配置一个满足我们日常使用要求的虚拟环境吧!

conda create -n py310-test -c conda-forge python=3.10
conda activate py310-test
conda install -c conda-forge mamba

mamba install -c conda-forge proplot
mamba install -c conda-forge pygis geemap
mamba install -c conda-forge cartopy
mamba install -c conda-forge salem

前三句的含义我们前面已经解析过了,这里不再赘述,后四行命令则是安装了5个第三方库。其中:

  • Proplot为目前非常强力的一个可视化第三方库;

  • PyGISGeemap中则整合了当前最常用的地学第三方库(如,GDALRasterioXarrayGeoPandas,并包括了Google Earth EnginePython APIJuPyter Notebook),一次性解决了重复使用命令安装不同地学库和版本冲突的问题;

  • Cartopy则主要面向地学可视化,调整我们绘图中的坐标系、投影等问题;

  • Salem则是当前一款非常实用的NetCDF掩膜工具。

接下来只需要将该环境配置到你的开发环境中,就可以开始愉快的编程之旅了。其他需要进一步扩展的第三方库可自行安装。

Let's start coding!

Manuscript: RitasCake
Proof: Philero; RitasCake

获取更多资讯,欢迎订阅微信公众号:Westerlies

关注我们,阅读原文跳转和鲸社区
关注我们,阅读原文跳转和鲸社区
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值