Conda虚拟环境的复制和迁移的四种方法实现

Written by

in

文章目录
  • conda create –name 新环境名 –clone 旧环境名
  • 目录
    • 在本机复制Conda虚拟环境
    • 相同操作系统之间复制环境
      • 方法一:requirements.txt
      • 方法二 : Environment.yml
      • 方法三:Conda Pack
        • 打包环境:
        • 复制环境到其他电脑上:
      • 方法四:直接复制envs目录下的虚拟环境文件夹

      conda create --name 新环境名 --clone 旧环境名
      

      这个方法不推荐,因为只会导出你使用pip安装的依赖包,不会导出虚拟环境所依赖的包,并不适用于虚拟环境的迁移的应用场景。

      事实上,此方法比较适用于,已经明确知道依赖哪些包,我们只需要package信息的情况,如写项目文档,告诉别人运行我这个系统必须安装哪些依赖包。而忽略虚拟环境本身的依赖环境。

      pip freeze > requirements.txt  # 生成requirements.txt
      pip install -r requirements.txt  # 从requirements.txt安装依赖
      

      跨平台和操作系统共享项目环境也可以使用 -export 选项生成 environment.yml 文件来完成。规范列表和 environment.yml 文件之间的区别在于 environment.yml 文件不是特定于操作系统的,而是使用 YAML 格式化的。只列出包名,conda根据包名搭建环境。另一个区别是 -export 还包括使用 pip 安装的包,而 spec 列表不包括。要导出 environment.yml 文件:

      conda env export environment.yml
      
      • 请注意,如果路径中已有 environment.yml 文件,conda 将覆盖该文件。创建环境:
      conda env create -f environment.yml
      

      Conda-pack 是一个命令行工具,用于打包 conda 环境,其中包括环境中安装的包的所有二进制文件。此法支持断网环境下使用。Environment.yml 是从python依赖包各自的存储库中下载包来创建环境,缺点当然是网速慢、容易下载失败等等。此法就没有这个问题。

      请记住,conda-pack 是特定于平台和操作系统的,目标计算机必须具有与源计算机相同的平台和操作系统。
      要安装 conda-pack,请确保您处于 root 或 base 环境中,以便它在子环境中可用。 Conda-pack 可在 conda-forge 或 PyPI 获得。

      conda-forge:

      conda install -c conda-forge conda-pack
      

      PyPI:

      pip install conda-pack
      

      # Pack environment my_env into my_env.tar.gz
      $ conda pack -n my_env
      
      # Pack environment my_env into out_name.tar.gz
      $ conda pack -n my_env -o out_name.tar.gz
      
      # Pack environment located at an explicit path into my_env.tar.gz
      $ conda pack -p /explicit/path/to/my_env
      

      # Unpack environment into directory `my_env`
      $ mkdir -p my_env
      $ tar -xzf my_env.tar.gz -C my_env
      
      # Use Python without activating or fixing the prefixes. Most Python
      # libraries will work fine, but things that require prefix cleanups
      # will fail.
      $ ./my_env/bin/python
      
      # Activate the environment. This adds `my_env/bin` to your path
      $ source my_env/bin/activate
      
      # Run Python from in the environment
      (my_env) $ python
      
      # Cleanup prefixes from in the active environment.
      # Note that this command can also be run without activating the environment
      # as long as some version of Python is already installed on the machine.
      (my_env) $ conda-unpack
      

      在断网环境下,我们也可以直接从源电脑(以下统称为src电脑)上直接将虚拟环境整个复制到目标电脑(以下统称为target电脑)上。前提是target计算机必须具有与src计算机相同的平台和操作系统。

      1、target电脑上安装相同版本的Anaconda。

      2、从src电脑把envs文件夹中需要复制的虚拟环境文件夹复制到target电脑上,位置随便放。

      我们可以通过以下命令来查看src电脑上虚拟环境文件夹的存放路径:

      conda env list
      

      image-20230426143639701

      已上图为例,E:ProgramDataAnacondaenvsnew_name 就是虚拟环境new_name的存储路径。我们将它直接复制到target电脑上即可。

      image-20230426143959988

      3、在target电脑上,进入conda命令行,使用如下命令:

      conda config --add envs_dirs %复制到target电脑上的envs路径%
      

      注意: 这里的路径是目标虚拟环境文件夹的上级目录!

      举个例子:

      我将上图中的new_name复制到了target电脑上,并重命名为:env_pybd。路径为G:anoconda_envsenv_pybd

      image-20230426152249543

      那么我应该用conda执行命令:

      conda config --add envs_dirs G:anoconda_envs
      

      运行成功后,会往 C:user%当前用户名%.condarc 里面添加一条envs_dirs记录,如下图所示:

      image-20230426152437166

      再运行

      conda env list
      

      就可以看到,我们已经复制成功了:

      image-20230426152756755

      到此这篇关于Conda虚拟环境的复制和迁移的方法实现的文章就介绍到这了,更多相关Conda虚拟环境复制和迁移内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 

      您可能感兴趣的文章:

      • 在vscode中启动conda虚拟环境的思路详解
      • conda虚拟环境默认路径的修改方法
      • conda虚拟环境使用pip下载包到当前环境的两种方法
      • Anaconda修改默认虚拟环境安装位置的方案分享
      • pycharm 使用conda虚拟环境的详细配置过程
      • anaconda虚拟环境默认路径的更改图文教程
      • 使用pycharm+conda配置虚拟环境的详细步骤
      • 如何将conda虚拟环境添加到Jupyter lab内核

      站内搜索