ubantu/linux下的conda环境迁移到其它服务器

1 问题

比如有服务器A,B,C。每次在服务器A配完环境,B和C也要配很麻烦。
因此研究如何把某个服务器的conda环境迁移到其他服务器。

查看所有的conda虚拟环境

conda env list

环境迁移前服务器A的环境:
image
服务器B的环境:
image

现在尝试把服务器A的dgml_crop迁移到服务器B中

2 解决尝试一 使用 conda-pack 打包环境

步骤:

1、在服务器A安装 conda-pack:

conda install -c conda-forge conda-pack

image

2、打包环境:

conda pack -n 环境名 -o 环境名.tar.gz

例如

conda pack -n dgml_crop -o dgml_crop.tar.gz

image

打包完成

3 在服务器B对迁移的conda环境进行使用尝试

3.1 把在服务器A打包好的环境文件迁移到服务器B

3.1.1 使用xftp软件进行交互性传输(也可以直接用vscode下载上传)

先从A下载到本地,再从本地上传到B

image
传输完成后ls查看下
image

3.2 在服务器B/C解压并激活:

先创建个空文件夹

mkdir -p ~/anaconda3/envs/环境名  # 确保路径与服务器A一致

例如

mkdir -p ~/anaconda3/envs/dgml_crop


mkdir -p ~/anaconda3/envs/pytorch310

解压迁移的环境文件到以上路径

tar -xzvf 环境名.tar.gz -C ~/anaconda3/envs/环境名

例如

tar -xzvf dgml_crop.tar.gz -C ~/anaconda3/envs/dgml_crop


tar -xzvf pytorch310.tar.gz -C ~/anaconda3/envs/pytorch310

尝试激活该环境

conda activate dgml_crop

image

激活成功,此时Conda环境就可用了

4、bug解决记录(没bug不用看)

(报错记录及其解决:
image
从错误信息看,dgml_crop 环境中存在 conda 和 pip 安装的包冲突(尤其是 sympy 包),导致 conda-pack 无法完整打包。以下是具体解决方案:

conda list | grep sympy  # 检查是否同时存在 conda 和 pip 安装的 sympy

image
有pypi,说明存在冲突

# 删除 pip 安装的冲突包
pip uninstall sympy -y

# 重新用 conda 安装该包(确保版本一致)
conda install sympy=1.13.1 --force-reinstall

重新之前的打包命令,发现可以正常打包了
)

posted @ 2025-02-13 17:37  JaxonYe  阅读(281)  评论(0)    收藏  举报