联网与离线Ubuntu服务器间Conda环境迁移全攻略

在实际工作中,我们常常会遇到这样的场景:有一台可以联网的Ubuntu服务器(A),以及一台无法联网的Ubuntu服务器(B),而我们需要在A上将Conda环境打包,然后迁移到B上运行代码。本文将详细为你介绍如何完成这一过程,确保你能够顺利地在离线服务器上运行你的代码。

一、环境准备

(一)A(联网服务器):步骤1~4

(二)B(离线服务器):步骤5~8

二、A服务器(联网)操作步骤

(一)步骤1:确认Conda和虚拟环境

在开始之前,我们需要先确认Conda是否已经安装,以及查看已有的虚拟环境。然后,激活你想要迁移的环境。具体操作如下:

conda --version            # 确认Conda安装
conda env list             # 查看已有环境
conda activate py310       # 激活你要迁移的环境

(二)步骤2:安装conda-pack

为了能够将Conda环境打包,我们需要安装conda-pack。执行以下命令进行安装:

conda install -c conda-forge conda-pack

(三)步骤3:打包虚拟环境

接下来,我们将虚拟环境进行打包。这会生成一个压缩文件,里面包含了整个环境的复制,包括Python和所有依赖库。操作如下:

conda activate py310
conda-pack -n py310 -o py310_env.tar.gz

(四)步骤4:打包你的代码和压缩包

将打包好的环境压缩包和你的项目代码一起打包,然后通过scp、U盘、移动硬盘等方式将它们复制到B服务器。具体操作如下:

mkdir offline_env_transfer
cp py310_env.tar.gz offline_env_transfer/
cp -r your_project_code/ offline_env_transfer/

三、B服务器(离线)操作步骤

(一)步骤5:安装Miniconda(无需联网)

在联网服务器上下载Miniconda的.sh安装包。根据你的服务器架构选择合适的版本,可以从Index of /miniconda下载。例如,对于64位Linux系统,下载链接如下:

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

然后将该安装包复制到B服务器,并执行以下命令进行安装:

bash Miniconda3-latest-Linux-x86_64.sh

安装路径建议选择/opt/miniconda3$HOME/miniconda3,并记下你安装的路径,后续步骤中会用到。

(二)步骤6:配置Conda环境变量(第一次使用)

为了能够正常使用Conda,我们需要配置环境变量。编辑.bashrc文件,添加Conda初始化路径。假设你安装在/opt/miniconda3,则添加以下内容:

export PATH="/opt/miniconda3/bin:$PATH"
eval "$(/opt/miniconda3/bin/conda shell.bash hook)"

保存后,执行以下命令使配置生效:

source ~/.bashrc

最后,通过以下命令验证Conda是否安装成功:

conda --version

(三)步骤7:解压迁移包并使用虚拟环境

将迁移包解压到指定目录,并修复环境路径。具体操作如下:

mkdir -p ~/envs/py310
tar -xzf py310_env.tar.gz -C ~/envs/py310
cd ~/envs/py310
./bin/conda-unpack

conda-unpack会自动替换旧路径,修复shebang和缓存,从而确保虚拟环境能够在离线服务器上正常运行。

(四)步骤8:运行代码

激活虚拟环境,并运行你的代码。具体操作如下:

conda activate py310
cd your_project_code
python your_script.py

四、补充:如何查看Conda环境路径

如果你不确定Conda环境存放位置(envs目录),可以在任意一台服务器运行以下命令查看:

conda info --envs

输出结果类似于:

# conda environments:
#
base                  *  /opt/miniconda3
py310                    /opt/miniconda3/envs/py310

从这里你可以看到py310的真实物理路径。

五、总结(文件结构)

迁移前文件结构如下:

offline_env_transfer/
├── py310_env.tar.gz
└── your_project_code/
    └── your_script.py

迁移后,在离线机器上:

  • 解压到:~/envs/py310

  • 项目放在任意路径

  • 使用conda activate ~/envs/py310来激活

通过以上步骤,你就可以轻松地将Conda环境从联网的Ubuntu服务器迁移到离线的Ubuntu服务器,并在离线服务器上顺利运行你的代码。希望这篇文章能够对你有所帮助,让你在实际工作中更加高效地完成任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值