Linux 端快速迁移 conda 环境到另一台服务器上
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..net/Wjeana/article/details/126705655?spm=1001.2014.3001.5506