使用 Anaconda 提供的包管理工具 conda 进行虚拟环境的管理

  在基于 python 进行数据分析、机器学习等领域的实践和学习时,由于代码的更迭和更新,运行他人实现的代码或尝试安装新的工具库时往往需要指定特定版本的其他工具库,以满足特定的运行环境的构建条件。而将同一工具库的不同版本或者具有相似功能的不同工具库全部堆积在唯一一个环境下显然会为不同工具库的管理和使用增添负担。故而,根据不同的任务要求,为不同的需求和应用创建相互分离的环境,使得不同任务的环境之间不会相互干扰和影响,是一种自然而然的选择。上述为特定的任务和需求而配置构建的环境一般被称为虚拟环境。目前,比较常见的虚拟环境管理工具包括 virtualenv 和 conda 等。本文主要记录使用 Anaconda 提供的包管理工具 conda 进行虚拟环境管理的基本操作命令,供学习与交流。

  简介

  Anaconda 是一种 Python 语言的免费增值开源发行版,用于进行大规模数据处理、预测分析,和科学计算,致力于简化包的管理和部署(维基百科)。 Anaconda 使用软件包管理系统Conda 进行包管理,为用户对不同版本、不同功能的工具包的环境进行配置和管理提供便利。

  通过 Anaconda 所提供的 conda 工具创建的环境一般位于安装目录的 envs 目录下,如笔者创建的环境的默认保存路径即位于 /path/to/anaconda3/envs 目录。

  创建环境

  用户通过 conda create 命令创建新的环境,环境默认位于 envs 目录下,可通过 python=x.x 指定 python 版本,没有指定时,创建的环境中使用的 python 版本与当前环境使用的版本一致。在使用上述命令时,可在最后附加需要安装在该环境中的包的名称,从而在创建的环境中安装对应的包。

    conda create -n/--name env_name [python=x.x][package_name]    //创建名为 env_name 的环境,可进一步指定使用的 python 版本和该环境中安装的包

  使用示例:

  创建名为 py2 的环境,使用的 python 版本为 python2:

    conda create -n py2 python=2           //创建名为 py2 的环境,其中的 python 版本为python2

  创建名为 yh 的环境,并在其中安装 scipy 包:

  conda create --name yh scipy=0.15.0    //创建名为 yh 的环境,并安装 scipy 0.15.0 包,其使用的版本为当前使用的 python 版本

  上述安装到环境中的包均可通过 package=x.x 的方式指定特定安装包的版本。

  查看环境

  使用 conda env list 命令查看已有的 conda 环境,包括环境的名字和其对应的目录。

    conda env list              //列出对应环境以及对应的目录

  

  使用和退出环境

  进入创建的虚拟环境

    source activate env_name        //进入名为 env_name 的环境

  退出当前的虚拟环境

    source deactivate              //退出当前的虚拟环境

  这里,activate 和 deactivate 命令文件位于 anaconda 安装目录下的 bin 目录中,但一般而言在安装时设置其不具备可执行权限,故而想要执行上述程序需要在前面加入 source 命令,source 会读取指定文件的内容( 这里即 activate 和 deactivate ),并在当前 shell 执行该文件的内容。在较新版本的 conda 环境中,也可以通过命令 conda activate env_name 进入创建的环境。

  conda常用命令

  conda 命令既可以直接针对当前虚拟环境进行操作,也可通过 -n 参数指定针对某个特定的环境进行操作。当不指定 -n 参数时,默认针对当前环境进行操作。

    conda list (-n env_name)        //显示环境中安装的包的信息
    conda install (-n env_name) package   //在特定环境中安装包
    conda remove (-n env_name) package    //移除特定环境中的包

   

  分享环境

  conda 允许用户通过 .yml 文件的方式共享其创建的环境,从而使得其他用户能够根据上述命令构建一致的实验/操作环境。

  导出环境配置的文件

    conda env export > environment.yml        //将当前环境的配置导出到 environment.yml 文件中

  上述命令会将当前环境下的 pip 包和 conda 包配置导出到 environment.yml 文件中,其他用户可通过上述文件构建新的与 .yml 文件配置保持一致的环境。

  根据 .yml 文件创建环境

    conda env create -f environment.yml    //根据 environment.yml 文件创建新的环境

  创建的新环境的名称在 .yml 文件的第一行 name 字段中已经指定好。

  参考: Conda User guide -> Tasks -> Managing environment

猜你喜欢

转载自www.cnblogs.com/yhjoker/p/10483443.html