管理conda environments

environments作为conda的核心组件,用于封装相互独立的软件环境。通过在不同的environment中安装packages,来实现不同软件的相互独立,通过在不同的environments之间进行切换,从而运行不同的packages。

在environments中,有一个基本概念,叫做base environment,可以通过如下命令来查看

conda info --base
其实体是一个目录,在该文件夹下,包含了以下几个目录

1. pkgs, 下载的packages源文件以及解压缩之后的文件夹

2. envs, 新创建的environments

3. bin, 可执行程序

4. include, packages依赖的头文件

5. lib, packages依赖的动态链接库

6. share,存放共用的软件包

除了pkgs和envs目录是base environment文件夹独有的,其他几个文件夹在所有的envrionments目录下都会存在。

对于environments, 常用的有以下几种操作

1. 创建

通过create子命令来创建一个新的env, 命令如下

conda create -n myenv numpy

-n参数指定要创建的env的名称,接下来的参数指定要安装的packages,除了在创建env的同时指定安装包,也可以创建好之后,再进行安装,命令如下

conda create -n myenv

2. 使用

当我们创建好一个env之后,需要切换进去,才可以在里面操作,包括安装和使用packages, 典型的使用一个env的过程如下

# 切换进去
conda activate myenv
# 安装包
conda install scipy
# 退出
conda deavtivate

3. 迁移

当我们想要将一个conda的env在不同服务器之间迁移时,有以下两种方式,第一种是导出该env的所有安装包信息,然后再另外的服务器上根据这个配置文件重新下载生成一个env, 用法如下

# 生成environment.yml文件
conda env export > environment.yml
# 根据environment.yml文件创建新的env
conda env create -f environment.yml

这种方式的最大特点是适合不同操作系统的conda迁移,因为保留的是包的信息,下载的时候会根据操作系统自动下载对应的包。

第二种适用于相同操作系统平台的迁移,用法如下

# 生成spec文件
conda list --explicit > spec-file.txt
# 根据spec文件生成新的env
conda create --name myenv --file spec-file.txt

4. 复制

有时我们需要在某个env的基础上安装新的包,然后另存为一个新的env, 因为这样可以避免基础包的重复安装,此时可以先复制env, 再安装包,用法如下

conda create --name myclone --clone myenv

5. 删除

对于经常不用的env,为了节省磁盘空间,可以进行删除,用法如下

conda remove --name myenv --all

通过以上几条基础命令,就可以熟练掌握environments的常见用法。

·end·
(0)

相关推荐