conda在不同服务器上迁移环境的方法
conda 复制环境(相同主机)
使用命令行克隆环境
- 打开Anaconda Prompt或终端。
- 输入命令:
conda create -n new_env --clone exist_env
,其中new_env
是新创建的虚拟环境名称,exist_env
是被复制的已存在的环境名称。 - 这条命令会创建一个名为
new_env
的新环境,该环境包含exist_env
中的所有包和配置。
conda迁移环境
方法一:复制pkgs和envs包(离线环境)
- 先把我们使用的
conda
环境中的pkgs
包和envs
包全部压缩,然后下载下来,上传到相对应的服务器上。 - 之后我们把这些环境的
pkgs
包和envs
包替换掉原服务器的pkgs包和envs包 - 之后直接运行:
- 查看环境
conda env list
- 激活环境
source activate my_env
- 查看环境
就成功了。
快速打包方法
上面方法的是压缩envs包和pkgs包之后解压到目标主机,这里发现还有一种快速打包环境的方法:
- 打包当前环境
使用conda pack
命令将环境打包为一个.tar.gz
文件:
conda pack -n my_env -o my_env.tar.gz
其中,my_env
是你要打包的环境名称,my_env.tar.gz
是生成的压缩包文件名称。
- 在目标电脑上还原环境
将my_env.tar.gz
文件复制到目标电脑,在anaconda/env
目录下创建目标文件夹并解压:
mkdir -p my_env
tar -xzf my_env.tar.gz -C my_env
这一步将在 my_env
文件夹中解压环境文件。
3. 激活环境
解压完成后,直接激活环境即可:
source activate my_env
这样,目标电脑上将拥有与原电脑一致的 Conda 环境,无需重新安装包。
方法二:environment.yml文件(目标主机有网)
要在另一台电脑上复现你当前的 Conda 环境,可以导出当前环境的每个包的配置并在新电脑上重新创建该环境。以下是步骤:
- 导出环境配置:
在你的当前环境中,使用以下命令导出环境配置到一个yml
文件:
conda env export > environment.yml
这会生成一个environment.yml
文件,其中包含了环境中所有包及其版本信息。
- 在另一台电脑上创建环境:
将environment.yml
文件复制到另一台电脑上,然后在新电脑上使用以下命令创建环境:
conda env create -f environment.yml
- 激活新环境:
创建完成后,激活该环境:
conda activate your_environment_name
其中your_environment_name
是environment.yml
文件中指定的环境名称。
这样就可以在另一台电脑上复现相同的 Conda 环境了。
案例environment.yml文件内容(clip文件)
name: clip
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- defaults
dependencies:
- _libgcc_mutex=0.1=main
- _openmp_mutex=5.1=1_gnu
- ca-certificates=2024.9.24=h06a4308_0
- certifi=2022.12.7=py37h06a4308_0
- ld_impl_linux-64=2.40=h12ee557_0
- libffi=3.4.4=h6a678d5_1
- libgcc-ng=11.2.0=h1234567_1
- libgomp=11.2.0=h1234567_1
- libstdcxx-ng=11.2.0=h1234567_1
- ncurses=6.4=h6a678d5_0
- openssl=1.1.1w=h7f8727e_0
- pip=22.3.1=py37h06a4308_0
- python=3.7.16=h7a1cb2a_0
- readline=8.2=h5eee18b_0
- setuptools=65.6.3=py37h06a4308_0
- sqlite=3.45.3=h5eee18b_0
- tk=8.6.14=h39e8969_0
- wheel=0.38.4=py37h06a4308_0
- xz=5.4.6=h5eee18b_1
- zlib=1.2.13=h5eee18b_1
- pip:
- charset-normalizer==3.4.0
- clip==1.0
- ftfy==6.1.1
- idna==3.10
- numpy==1.21.6
- nvidia-cublas-cu11==11.10.3.66
- nvidia-cuda-nvrtc-cu11==11.7.99
- nvidia-cuda-runtime-cu11==11.7.99
- nvidia-cudnn-cu11==8.5.0.96
- packaging==24.0
- pillow==9.5.0
- regex==2024.4.16
- requests==2.31.0
- torch==1.13.1
- torchvision==0.14.1
- tqdm==4.66.5
- typing-extensions==4.7.1
- urllib3==2.0.7
- wcwidth==0.2.13
prefix: /root/miniconda3/envs/clip
可能会用到的命令
压缩命令和解压命令:
压缩命令:
tar -cvf envs.tar envs
tar -cvf pkgs.tar pkgs
解压命令:
tar -xvf archive.tar
复制命令
cp envs.tar /root/anaconda3
cp pkgs.tar /root/anaconda3
参考资料:
https://blog.csdn.net/weixin_43753824/article/details/135402619
可以参考下面这个帖子:
https://zhuanlan.zhihu.com/p/602012820