服务器间conda环境的迁移
本内容需要解决的问题描述如下
前提:现有服务器A,称之为源服务器,可以连接互联网,服务器B,称之为目标服务器,无法连接互联网,没有conda源,(通过VSCode连接后,如果安装python扩展,只有一种一种版本的python,在这里版本为3.12)
要求:在服务器B上创建名称为mplug_owl2的环境,要求python. version=3.10
过程概述:首先,在服务器A上创建3.10,名称为mplug_owl2的python环境,然后使用conda-pack把服务器A上的环境复制至服务器B中,B中conda环境路径为/home/usr/miniconda3/envs/,具体操作过程下面进行详细概述。
1、源服务器上环境的创建与打包
打开anconda prompt,进入A中conda的base环境,首先安装conda-pack,新建名称为mplug_owl2的conda环境并打包,得到mplug_owl2.tar.gz文件。
# base环境中安装 创建环境
conda create -n mplug_owl2 python=3.10 -y
# 进入mplug_owl2
conda activate mplug_owl2
# 安装conda-pack
conda install conda-pack
# 打包环境并在当前环境中得到mplug_owl2.tar.gz文件
conda pack -n mplug_owl2 -o mplug_owl2.tar.gz
会显示打包过程,如下所示
2、目标服务器上环境解压缩
将mplug_owl2.tar.gz文件复制至服务器B服务器conda的/home/usr/miniconda3/envs/中,进行解压即可。
# 进入到/home/usr/miniconda3/envs/文件夹
mkdir mplug_owl2
tar -xf mplug_owl2.tar.gz -C mplug_owl2
# 打开conda验证是否出现该环境
conda activate mplug_owl2
# 能够正常使用该环境下python及pip能够安装包即为成功
3、pip导出requirements.txt
有时候源服务器中的包很全,想生成requirements.txt文件,然后在目标服务器上安装即可。
#源服务器生成
pip freeze > requirements.txt
# 目标服务器上安装
pip install -r requirements.txt
PS:不要傻傻地直接zip源服务器上环境,否则当A和B中conda路径不同时,pip里链接的路径还是A中的,导致在B中无法正常安装包。