environments作为conda的核心组件,用于封装相互独立的软件环境。通过在不同的environment中安装packages,来实现不同软件的相互独立,通过在不同的environments之间进行切换,从而运行不同的packages。
在environments中,有一个基本概念,叫做base environment,可以通过如下命令来查看
代码语言:javascript复制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, 命令如下
代码语言:javascript复制conda create -n myenv numpy
-n参数指定要创建的env的名称,接下来的参数指定要安装的packages,除了在创建env的同时指定安装包,也可以创建好之后,再进行安装,命令如下
代码语言:javascript复制conda create -n myenv
2. 使用
当我们创建好一个env之后,需要切换进去,才可以在里面操作,包括安装和使用packages, 典型的使用一个env的过程如下
代码语言:javascript复制# 切换进去
conda activate myenv
# 安装包
conda install scipy
# 退出
conda deavtivate
3. 迁移
当我们想要将一个conda的env在不同服务器之间迁移时,有以下两种方式,第一种是导出该env的所有安装包信息,然后再另外的服务器上根据这个配置文件重新下载生成一个env, 用法如下
代码语言:javascript复制# 生成environment.yml文件
conda env export > environment.yml
# 根据environment.yml文件创建新的env
conda env create -f environment.yml
这种方式的最大特点是适合不同操作系统的conda迁移,因为保留的是包的信息,下载的时候会根据操作系统自动下载对应的包。
第二种适用于相同操作系统平台的迁移,用法如下
代码语言:javascript复制# 生成spec文件
conda list --explicit > spec-file.txt
# 根据spec文件生成新的env
conda create --name myenv --file spec-file.txt
4. 复制
有时我们需要在某个env的基础上安装新的包,然后另存为一个新的env, 因为这样可以避免基础包的重复安装,此时可以先复制env, 再安装包,用法如下
代码语言:javascript复制conda create --name myclone --clone myenv
5. 删除
对于经常不用的env,为了节省磁盘空间,可以进行删除,用法如下
代码语言:javascript复制conda remove --name myenv --all
通过以上几条基础命令,就可以熟练掌握environments的常见用法。
·end·
—如果喜欢,快分享给你的朋友们吧—