Linux 端快速迁移 conda 环境到另一台服务器上

本文详细介绍了如何在Linux环境下将一台服务器的conda环境打包成tar.gz文件,然后在另一台服务器上解压并重新创建相同环境的过程,包括所需工具和具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux 端快速迁移 conda 环境到另一台服务器上

一、前言

  本文说明如何将一台服务器上的某个 conda 环境快速复制到另一台服务器上。

二、详细步骤

1. 打包环境

  此操作在需要打包 conda 环境的那台服务器上完成。
  先后在 shell 中执行以下命令:

pip install conda-pack
conda pack -n env_name    # emv_name 是需要打包的环境名

  操作完成后,会在当前目录下生成一个名为env_name.tar.gz的文件。
  然后将env_name.tar.gz文件复制到另一台需要迁移环境的目标服务器上,可以手动复制,也可以使用以下命令:

# 以下命令中:xxx 改为端口号,username 改为用户名,192.168.0.0 改为目标服务器的 ip 地址
# /home/username/ 改为目标服务器上放文件的地址
scp -r -P xxx env_name.tar.gz username@192.168.0.0:/home/username/

2. 解压缩文件

  目标服务器上,在env_name.tar.gz文件同目录下创建.py文件,并复制以下内容:

# 获取环境的 tar.gz 文件,env_name 是要打包的环境名
# pip install conda-pack
# conda pack -n env_name

import os
import tarfile

name = ''
file_name = '/home/username/env_name.tar.gz'

new_env_path = f'/home/username/anaconda3/envs/{name}'    # ananconda 存放环境的路径
if not os.path.exists(new_env_path):
    os.mkdir(new_env_path)

def untar(file_name, dir):
    t_file = tarfile.open(file_name)
    t_file.extractall(new_env_path)

untar(file_name, new_env_path)

  以上文件中需要改 3 个地方(目标服务器上需要已经安装好 Anaconda):

name = ''    # 给环境赋一个新的名字
file_name = '/home/username/env_name.tar.gz'    # file_name 改成自己的 .tar.gz 文件的绝对路径
new_env_path = f'/home/username/anaconda3/envs/{name}'    # 此路径中 username 改为自己的用户名

  改好后执行脚本文件即可。
  此处提供一个.tar.gz文件,配置为:

# torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1

  百度网盘下载地址:
  链接:https://pan.baidu.com/s/1sJXksht6skd5W7jsu0vRBA
  提取码:amtd
  对本文有任何疑问或者意见和建议,欢迎私信或评论区留言讨论!

参考资料

  1.https://blog.csdn.net/Wjeana/article/details/126705655?spm=1001.2014.3001.5506

### LinuxConda 环境的打包与迁移Linux 中,可以利用 `conda-pack` 工具来实现 Conda 虚拟环境的高效打包和迁移。以下是具体的操作方法: #### 1. 原服务器上的操作 首先,在原服务器上进入 Base 环境并安装 `conda-pack` 工具: ```bash conda activate base pip install conda-pack ``` 接着,切换到存储虚拟环境的目录,并使用 `conda pack` 对目标环境进行打包。假设需要迁移环境名为 `my_env`,执行如下命令: ```bash cd /path/to/miniconda3/envs/ conda pack -n my_env -o my_env.tar.gz ``` 此过程会生成一个包含所需依赖项的 `.tar.gz` 文件[^4]。 #### 2. 将压缩包传输至目标服务器 通过 SCP 或其他文件传输工具将生成的压缩包上传到目标服务器。例如,如果目标服务器 IP 地址为 `192.168.1.100` 并希望将其放置于 `/home/user/` 目录下,则可运行以下命令: ```bash scp my_env.tar.gz [email protected]:/home/user/ ``` #### 3. 在目标服务器上恢复环境 登录目标服务器后,创建一个新的目录用于存放解压后的环境数据,并完成解压工作: ```bash mkdir /path/to/new_env_dir/my_env tar -xzf my_env.tar.gz -C /path/to/new_env_dir/my_env ``` 最后一步是修复路径链接以便正常调用该环境中的 Python 解释器及其他组件。为此需编辑激活脚本: ```bash sed -e 's|^PREFIX=.*|PREFIX=/path/to/new_env_dir/my_env|' \ -i /path/to/new_env_dir/my_env/bin/activate ``` 之后即可激活新的 Conda 环境: ```bash source /path/to/new_env_dir/my_env/bin/activate ``` 至此,Conda 环境成功从源服务器迁移到目标服务器[^1]。 --- ### 注意事项 - 如果两台机器架构不同(如 x86_64 和 ARM),则可能无法直接迁移二进制兼容的库文件。 - 当目标服务器无互联网连接时,可通过提前下载所有必要软件包的方式构建离线可用的新环境[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值