conda 克隆旧环境及导入新环境(服务器间共享)

有时我们需要在不同服务器配置同样环境,刚好最近也有这样的需求,所以记录下。

查看旧服务器当前环境

$ conda env list 
# conda environments:
#
base                  *  /home/zhouwg/anaconda3
cpdb                     /home/zhouwg/anaconda3/envs/cpdb
java                     /home/zhouwg/anaconda3/envs/java
r-reticulate             /home/zhouwg/anaconda3/envs/r-reticulate
scATACseq                /home/zhouwg/anaconda3/envs/scATACseq
scenic_protocol          /home/zhouwg/anaconda3/envs/scenic_protocol

可以看到我这里有六个环境,接下来我想导出 scATACseq

# -n 后面的参数是旧服务器要克隆的环境名称
conda env export -n scATACseq > scATACseq.yaml

将旧服务器的yaml文件 copy 到新服务器

scp scATACseq.yaml  username@IP:/home/xxx/data/software

在新服务器上创建该配置的虚拟环境

# -n 后的参数是在B上要创建的虚拟环境名称, -f 后参数指的是yaml环境内容
conda env create -n scATACseq -f scATACseq.yaml

注意:
如果发现没有相关依赖的pip包,可能与你的conda版本有关,接着用以下命令进行导出pip包

## 导出
pip freeze > requirements.txt

## 导入
pip install -r requirements.txt

其实这样也解决不了根本问题,保持conda版本一致会省去不小的麻烦

Ref. conda 克隆环境及导入新环境/conda环境移植

你可能感兴趣的:(conda 克隆旧环境及导入新环境(服务器间共享))