conda(复制环境)在差别服务器上迁移环境的方法

打印 上一主题 下一主题

主题 994|帖子 994|积分 2982

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文件:
  1. conda pack -n my_env -o my_env.tar.gz
复制代码
其中,my_env 是你要打包的环境名称,my_env.tar.gz 是生成的压缩包文件名称。

  • 在目的电脑上还原环境
    将 my_env.tar.gz 文件复制到目的电脑,在 anaconda/env 目次下创建目的文件夹并解压:
  1. mkdir -p my_env
  2. tar -xzf my_env.tar.gz -C my_env
复制代码
这一步将在 my_env 文件夹中解压环境文件。
3. 激活环境
解压完成后,直接激活环境即可:
  1. source activate my_env
复制代码
这样,目的电脑上将拥有与原电脑一致的 Conda 环境,无需重新安装包。
方法二:environment.yml文件(目的主机有网)

要在另一台电脑上复现你当前的 Conda 环境,可以导出当前环境的每个包的配置并在新电脑上重新创建该环境。以下是步调:

  • 导出环境配置:
    在你的当前环境中,利用以下命令导出环境配置到一个 yml 文件:
  1. conda env export > environment.yml
复制代码
这会生成一个environment.yml文件,其中包含了环境中所有包及其版本信息。

  • 在另一台电脑上创建环境:
    将environment.yml文件复制到另一台电脑上,然后在新电脑上利用以下命令创建环境:
  1. conda env create -f environment.yml
复制代码

  • 激活新环境:
    创建完成后,激活该环境:
  1. conda activate your_environment_name
复制代码
其中your_environment_name是environment.yml文件中指定的环境名称。
这样就可以在另一台电脑上复现相同的 Conda 环境了。
案例environment.yml文件内容(clip文件)

  1. name: clip
  2. channels:
  3.   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  4.   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  5.   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  6.   - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
  7.   - defaults
  8. dependencies:
  9.   - _libgcc_mutex=0.1=main
  10.   - _openmp_mutex=5.1=1_gnu
  11.   - ca-certificates=2024.9.24=h06a4308_0
  12.   - certifi=2022.12.7=py37h06a4308_0
  13.   - ld_impl_linux-64=2.40=h12ee557_0
  14.   - libffi=3.4.4=h6a678d5_1
  15.   - libgcc-ng=11.2.0=h1234567_1
  16.   - libgomp=11.2.0=h1234567_1
  17.   - libstdcxx-ng=11.2.0=h1234567_1
  18.   - ncurses=6.4=h6a678d5_0
  19.   - openssl=1.1.1w=h7f8727e_0
  20.   - pip=22.3.1=py37h06a4308_0
  21.   - python=3.7.16=h7a1cb2a_0
  22.   - readline=8.2=h5eee18b_0
  23.   - setuptools=65.6.3=py37h06a4308_0
  24.   - sqlite=3.45.3=h5eee18b_0
  25.   - tk=8.6.14=h39e8969_0
  26.   - wheel=0.38.4=py37h06a4308_0
  27.   - xz=5.4.6=h5eee18b_1
  28.   - zlib=1.2.13=h5eee18b_1
  29.   - pip:
  30.     - charset-normalizer==3.4.0
  31.     - clip==1.0
  32.     - ftfy==6.1.1
  33.     - idna==3.10
  34.     - numpy==1.21.6
  35.     - nvidia-cublas-cu11==11.10.3.66
  36.     - nvidia-cuda-nvrtc-cu11==11.7.99
  37.     - nvidia-cuda-runtime-cu11==11.7.99
  38.     - nvidia-cudnn-cu11==8.5.0.96
  39.     - packaging==24.0
  40.     - pillow==9.5.0
  41.     - regex==2024.4.16
  42.     - requests==2.31.0
  43.     - torch==1.13.1
  44.     - torchvision==0.14.1
  45.     - tqdm==4.66.5
  46.     - typing-extensions==4.7.1
  47.     - urllib3==2.0.7
  48.     - wcwidth==0.2.13
  49. 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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

卖不甜枣

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表