CanTechLab

Can

Conda虚拟环境迁移步骤

18
2024-11-20

问题

目前实验室有两台8*3090的服务器,有时候需要某个conda虚拟环境在3090-1 和3090-2 之间进行迁移。我最近在使用OpenMMlab的MMAction框架,这个框架在23年就停止维护了,包之间的依赖关系和API废弃迁移问题比较难解决,配个环境就和手搓原子弹一样麻烦。我花了不少时间在3090-2上配好了环境,打算直接复制迁移到3090-1上,因为重新再配一遍真的很麻烦,还不一定能配成功。

解决策略

  1. 导出环境: 在源机器上,使用conda命令导出虚拟环境的配置文件。这会生成一个包含环境依赖的.yml文件。

    conda activate myenv # 激活你需要迁移的conda虚拟环境
    conda env export > environment.yml #在当前pwd路径下导出虚拟环境的配置文件
  2. 传输配置文件: 将生成的.yml文件传输到目标机器上。

  3. 创建新环境 在目标机器上,使用conda命令创建一个新的虚拟环境,并指定.yml文件作为环境配置。

    conda env create -f environment.yml
  4. 激活环境 在目标机器上,激活新创建的环境。

    conda activate myenv

注意事项

  • 这个过程假设两台机器上都安装了相同版本的conda,并且目标机器上有足够的资源来安装所有依赖。如果两台机器的操作系统不同(例如,一台是Windows,另一台是Linux),可能会有一些依赖不兼容的情况,需要手动解决。

  • 此外,如果环境中包含了一些特定于操作系统的包或者需要编译的包,那么在目标机器上可能需要重新编译这些包,或者找到适合目标操作系统的预编译包。