Conda 环境移植 (两种方式)

------------------------方法一------------------------

优点: 在原机器上需要进行的操作较少,且除了conda不需要其余的库来支撑;需要传输的文件小,操作较为简单。

缺点:在新的机器上复现原环境时,需要重新下载对应的依赖包,且可能会安装不上有些依赖包。耗费时间长,且完整重现环境的概率小。

具有待移植的环境的服务器

1 进入你要移植的环境

conda activate your_env

2 导出当前conda环境到某个文件(文件名字可以自定义)

conda env export > env_filename.yaml

在执行这条语句时可能会报权限不足:zsh: permission denied: env_filename.yaml

以下是解决办法

(1)首先进入到服务器的anaconda的conda目录下(或者bin目录下) ../anaconda/bin/conda

(2)执行 chmod -R +x .../anaconda/bin

(3)再执行 conda init zsh

即可;再重新执行conda env export > env_filename.yaml 就不会报错了;注意生成的.yaml文件在你当前所在的文件夹下。

3 导出当前conda环境通过pip安装的包:

pip freeze > requirements.txt

注意生成的.txt文件在你当前所在的文件夹下。

需要安装移植环境的服务器

1 复现conda环境

conda env create -f env_filename.yaml

此时建立了一个名字叫为env_filename的环境

2 复现conda环境中pip安装的包

进入新建立的env_filename环境,执行以下命令

pip install -r requirements.txt

到此结束,大功告成

------------------------方法二------------------------

优点:不需要在新的机器上二次下载,直接在对应位置解压打包好的环境包就可以直接使用;成功率高,推荐;

缺点: 如之前未安装过conda-pack,则需要先安装此包,需要额外操作;一般环境包较大,约几个G大小,传输到新机器上耗费的时间和网络资源大。

具有待移植的环境的服务器

1 安装 conda-pack 包(若之前未安装过)

pip install conda-pack

tips: 如何报以下错误,

ERROR: Could not find a version that satisfies the requirement conda-pack (from versions: none)
ERROR: No matching distribution found for conda-pack

多半是网络问题,换个镜像源就ok

pip install conda-pack -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

2 打包原环境 (无论你当前位于哪个虚拟环境中)

conda pack -n env_name

env_name 是 你需要移植的环境名

该命令会在你当前所在的目录产生一个环境包的压缩文件 env_name.tar.gz

3 传输 env_name.tar.gz

使用SCP或者其他的命令或方式将 env_name.tar.gz 传输到 你需要移植到的新机器的 anaconda 的 envs 目录下: e.g. /home/pc/anaconda3/envs/

需要安装移植环境的服务器

1 解压 env_name.tar.gz

首先在 /home/pc/anaconda3/envs/ 下新建mkdir一个文件夹 ,文件夹的名字就是压缩包的名称即可(当然也可以自定义一个新的名称)

然后使用以下命令解压环境压缩包到新建的文件夹中:

tar -xzf env_name.tar.gz -C ~/anaconda3/envs/env_name/

2 测试环境

直接 conda activate env_name 测试是否能够激活环境,如果可以则说明移植成功!

到此结束,大功告成

posted @ 2022-11-17 20:55  jacknie23  阅读(5668)  评论(0编辑  收藏  举报