优点: 在原机器上需要进行的操作较少,且除了conda不需要其余的库来支撑;需要传输的文件小,操作较为简单。 缺点:在新的机器上复现原环境时,需要重新下载对应的依赖包,且可能会安装不上有些依赖包。耗费时间长,且完整重现环境的概率小。 conda activate your_env 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文件在你当前所在的文件夹下。 pip freeze > requirements.txt 注意生成的.txt文件在你当前所在的文件夹下。 conda env create -f env_filename.yaml 此时建立了一个名字叫为env_filename的环境 进入新建立的env_filename环境,执行以下命令 pip install -r requirements.txt 优点:不需要在新的机器上二次下载,直接在对应位置解压打包好的环境包就可以直接使用;成功率高,推荐; 缺点: 如之前未安装过conda-pack,则需要先安装此包,需要额外操作;一般环境包较大,约几个G大小,传输到新机器上耗费的时间和网络资源大。 pip install conda-pack tips: 如何报以下错误, ERROR: Could not find a version that satisfies the requirement conda-pack (from versions: none) 多半是网络问题,换个镜像源就ok pip install conda-pack -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com conda pack -n env_name env_name 是 你需要移植的环境名 该命令会在你当前所在的目录产生一个环境包的压缩文件 env_name.tar.gz 使用SCP或者其他的命令或方式将 env_name.tar.gz 传输到 你需要移植到的新机器的 anaconda 的 envs 目录下: e.g. /home/pc/anaconda3/envs/ 首先在 /home/pc/anaconda3/envs/ 下新建mkdir一个文件夹 ,文件夹的名字就是压缩包的名称即可(当然也可以自定义一个新的名称) 然后使用以下命令解压环境压缩包到新建的文件夹中: 直接 conda activate env_name 测试是否能够激活环境,如果可以则说明移植成功!------------------------方法一------------------------
具有待移植的环境的服务器:
1 进入你要移植的环境
2 导出当前conda环境到某个文件(文件名字可以自定义)
3 导出当前conda环境通过pip安装的包:
需要安装移植环境的服务器:
1 复现conda环境
2 复现conda环境中pip安装的包
到此结束,大功告成
------------------------方法二------------------------
具有待移植的环境的服务器:
1 安装 conda-pack 包(若之前未安装过)
ERROR: No matching distribution found for conda-pack2 打包原环境 (无论你当前位于哪个虚拟环境中)
3 传输 env_name.tar.gz
需要安装移植环境的服务器:
1 解压 env_name.tar.gz
tar -xzf env_name.tar.gz -C ~/anaconda3/envs/env_name/
2 测试环境
到此结束,大功告成