anaconda / conda 环境复制和迁移

Posted 凌晗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了anaconda / conda 环境复制和迁移相关的知识,希望对你有一定的参考价值。

环境复制

  • 方法 1:使用 conda create 命令的 --clone 参数可以直接复制一个环境 conda create --name <new_env> --clone <myenv>

  • 方法 2:由于 conda 的环境其实是以一个文件夹的形式存在于 anaconda 的安装路径下,所以也可以直接找到这个文件夹(如~/anaconda3/envs),复制一份,修改文件夹名称为新环境名即可。

环境迁移

如果想在其他电脑上使用当前电脑的 conda 环境,需要分为两种情况讨论。

新电脑和当前电脑具有相同的平台和操作系统

有两种方法:
方法 1:使用 conda list 命令保存当前环境的包的信息到一个txt文件,即 conda list --explicit > spec-list.txt;根据这个文件可以在其他电脑上进行相同环境的安装,即conda create --name <new_env> --file spec-list.txt

注意:对于pip安装的某些包,可能需要单独由pip通过类似的方法生成一个包的list(pip freeze >pip-requirements.txt),在新的电脑中再通过pip来安装这些包(pip install -r pip-requirements.txt)

方法2:利用 conda-pack 命令直接对环境进行打包,好处是打包之后得到是包文件可以直接复制到其他电脑后解压使用,不需要重新联网下载包了。具体步骤:

  • 安装conda-pack包:conda install -c conda-forge conda-pack 或者 pip install conda-pack
  • 使用 conda pack 命令开始打包环境(尽量在待打包的环境之外的环境运行):conda pack -n <my_env> 这个命令会将my_env环境打包生成一个my_env.tar.gz 的压缩文件,保存在当前路径下。
  • 复制打包的压缩文件到新的电脑上,并解压到 anaconda的env目录下(如~/anaconda3/envs):先在env目录中用打包环境的名字创建一个文件夹如 mkdir my_env, 然后将压缩包解压到这个目录 tar -xzvf my_env -C ~/anaconda3/envs/my_env
  • 查看迁移环境是否存在:conda info -e
新电脑和当前电脑具有不同的平台和操作系统
  • 导出 environment_name.yml 文件:conda env export > environment.yml
  • 在新电脑上,利用生成的environment_name.yml 文件复现环境:conda env create -f environment.yml

注意:对于pip安装的某些包,可能需要单独由pip通过类似的方法生成一个包的list(pip freeze >pip-requirements.txt),在新的电脑中再通过pip来安装这些包(pip install -r pip-requirements.txt)

conda环境打包迁移及部署

  • 将要迁移的环境打包

    • conda pack -n 虚拟环境名称 -o output.tar.gz
    • 如果报错:No command ‘conda pack’
      尝试使用:conda install -c conda-forge conda-pack
  • 复制压缩文件到新的电脑环境

    • 进到conda的安装目录:/anaconda(或者miniconda)/envs/
    • 在该名目录下创建文件夹
    • 解压conda环境:tar -xzvf output.tar.gz -C /anaconda(或者miniconda)/envs/创建的文件夹/
    • 使用conda env list查看虚拟环境

以上是关于anaconda / conda 环境复制和迁移的主要内容,如果未能解决你的问题,请参考以下文章

conda环境打包迁移及部署

conda环境打包迁移及部署

linux离线克隆conda

解决powershell无法使用conda虚拟环境问题

Anaconda-- conda 创建、激活、退出、删除虚拟环境(转)

安装Anaconda后终端测试conda命令显示"Command Not Found"