conda 复制环境(相同主机)

使用命令行克隆环境

  • 打开Anaconda Prompt或终端。
  • 输入命令:conda create -n new_env --clone exist_env,其中new_env是新创建的虚拟环境名称,exist_env是被复制的已存在的环境名称。
  • 这条命令会创建一个名为new_env的新环境,该环境包含exist_env中的所有包和配置。

conda迁移环境

方法一:复制pkgs和envs包(离线环境)

  1. 先把我们使用的conda环境中的pkgs包和envs包全部压缩,然后下载下来,上传到相对应的服务器上。
  2. 之后我们把这些环境的pkgs包和envs包替换掉原服务器的pkgs包和envs包
  3. 之后直接运行:
    • 查看环境 conda env list
    • 激活环境 source activate my_env

就成功了。

快速打包方法

上面方法的是压缩envs包和pkgs包之后解压到目标主机,这里发现还有一种快速打包环境的方法:

  1. 打包当前环境
    使用conda pack命令将环境打包为一个.tar.gz文件:
conda pack -n my_env -o my_env.tar.gz

其中,my_env 是你要打包的环境名称,my_env.tar.gz 是生成的压缩包文件名称。

  1. 在目标电脑上还原环境
    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 环境,可以导出当前环境的每个包的配置在新电脑上重新创建该环境。以下是步骤:

  1. 导出环境配置
    在你的当前环境中,使用以下命令导出环境配置到一个 yml 文件:
conda env export > environment.yml

这会生成一个environment.yml文件,其中包含了环境中所有包及其版本信息。

  1. 在另一台电脑上创建环境
    environment.yml文件复制到另一台电脑上,然后在新电脑上使用以下命令创建环境
conda env create -f environment.yml
  1. 激活新环境:
    创建完成后,激活该环境:
conda activate your_environment_name

其中your_environment_nameenvironment.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

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐