Python气象应用编程
上QQ阅读APP看书,第一时间看更新

1.4 Python包管理

尽管Python自带功能丰富的标准库,但是在地球科学领域,很多时候我们仍需要安装不少第三方包(例如后文会介绍的NumPy),这时使用Python的包管理工具就很重要。Python的包管理工具主要有两个,即conda和pip。

这两个包管理工具在Miniconda发行版中已经默认提供,不需要手动安装。

1.4.1 conda

conda是一个用Python写成的开源包管理工具,它不仅能管理纯Python第三方包,也可以管理带有二进制依赖的Python包(例如NumPy,带有多个其他语言的二进制依赖)甚至其他语言编译的纯二进制包(NCL和GFortran)。同时conda也可以管理完整的Python环境,我们可以通过conda任意创建不同版本的Python虚拟环境。

安装包

在conda环境中,可以使用conda install命令安装新的第三方包(包括非Python开发的第三方包)。

conda install -c conda-forge 包名                # 安装最新版本的某个包
conda install -c conda-forge 包名=1.2.3          # 安装指定版本的某个包
conda install -c conda-forge '包名>=1.2.3'       # 安装不小于最小版本的某个包
conda install -c conda-forge '包名<=1.2.3'       # 安装不大于最大版本的某个包

-c conda-forge表明通道(源)为conda-forge。如果不携带这个参数,则使用默认的default通道。conda-forge通道上的包可能会比default通道上的更新得快,且大部分科学计算库和地球科学领域(包括气象领域)的库都选择使用conda-forge通道发布,所以一般情况下会指定使用conda-forge通道。

这里需要注意,在描述版本号时,如果带有<或>两个符号之一,则包名和版本号两边应带有单引号。这是因为在Bash命令行中,<和>两个符号代表输入输出重定向,需要用引号进行标识来表示普通字符串。

1.4.2 pip

pip是Python上应用广泛的基础的包管理工具。但是pip只能管理Python包,不能管理虚拟环境。由于pip对外部依赖缺乏管理能力,所以对于带有复杂外部依赖的第三方包(通常指科学计算包),使用pip时可能会出现某些依赖缺失或冲突的问题。所以我们应尽可能使用conda管理包,只在conda不提供所需的第三方包时才使用pip。

安装包

与conda相似,可以使用pip install命令安装新的第三方Python包(pip仅支持Python包的安装)。

pip install 包名              # 安装最新版本的某个包
pip install 包名==1.2.3       # 安装指定版本的某个包
pip install '包名>=1.2.3'     # 安装不小于最小版本的某个包
pip install '包名<=1.2.3'     # 安装不大于最大版本的某个包

这里需要注意,在描述版本号时,如果带有<或>两个符号之一,则包名和版本号两边应带上单引号。这是因为在Bash命令行中,<和>两个符号代表输入输出重定向,需要用引号包裹以表示普通字符串。