如何在离线时安装conda环境?

Wal*_*mly 34 python anaconda conda

我想在没有网络连接的机器上创建一个conda环境.到目前为止我所做的是:

在连接到互联网的计算机上:

conda create -n python3 python=3.4 anaconda
Run Code Online (Sandbox Code Playgroud)

Conda将所有相关软件包归档到\Anaconda\pkgs.我把它们放在一个单独的文件夹中,并将其移动到没有网络连接的机器上.该文件夹具有路径PATHTO\Anaconda_py3\win-64

我试过了

conda create -n python=3.4 anaconda --offline --channel PATHTO\Anaconda_py3
Run Code Online (Sandbox Code Playgroud)

这给出了错误消息

Fetching package metadata:
Error: No packages found in current win-64 channels matching: anaconda

You can search for this package on Binstar with

    binstar search -t conda anaconda
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?如何告诉conda基于此目录中的包创建环境?

Art*_*vim 16

您可以尝试克隆root作为基础env.

conda create -n yourenvname --clone root

  • 这不再适用于2017年9月25日.我从网络断开,然后运行`conda create -n offline --clone root`(也试过现有环境)并得到错误:`CondaError:CondaHTTPError:HTTP None None for url <https://repo.continuum.io/pkgs/free/win-64/jpeg-9b-vc14_0.tar.bz2> Elapsed:无尝试检索此URL时发生HTTP错误.HTTP错误通常是间歇性的,简单的重试将帮助您解决问题.CondaError:CondaHTTPError:HTTP无无url <https://repo.continuum.io/pkgs/free/win-64/jpeg-9b-vc14_0.tar.bz2>经过:无...... (4认同)
  • @jacobay43如果我读对了他的命令,那实际上只是新环境的名称,所以它一定是一个不同的问题 (4认同)
  • Steven C. Howell,它对您不起作用,因为您添加了离线标志,该标志不是命令的一部分,适用于 2019 年的 conda 版本 4.7.11 (2认同)

Sim*_*mba 9

简短回答:具有相同操作系统的另一台机器复制整个环境

为什么

依赖性。一个包依赖于其他包。当你在线安装一个包时,包管理器会conda分析包的依赖关系并为你安装所有需要的包。

anaconda. 原因anaconda是一个元包依赖于另一个 160 多个包。

元包,是不包含实际软件的包,仅依赖于要安装的其他包。

把这些依赖一一下载,安装在离线机器上,简直是荒唐。

详细解决方案

  1. 获得conda安装了相同的OS另一台机器上。在隔离的虚拟环境中安装您需要的软件包。

    # create a env named "myvenv", name it whatever you want
    # and install the package into this env
    conda create -n myvenv --copy anaconda
    
    Run Code Online (Sandbox Code Playgroud)

    --copy 习惯于

    使用副本而不是硬链接或软链接安装所有软件包。

  2. 查找环境的存储位置

    conda info
    
    Run Code Online (Sandbox Code Playgroud)

    键“envs目录”的第一个值是位置。去那里并将名为“myvenv”(上一步中的 env 名称)的整个子文件夹打包到一个存档中。

  3. 将存档复制到您的离线机器。从conda info. 并将环境从存档中解压到离线机器上的 env 目录中。

  4. 完毕。


asm*_*rer 1

pkgs 目录不是通道。您正在查找的标志是--unknown,这会导致 conda 将文件包含在pkgs目录中,即使在其中一个通道中找不到这些文件也是如此。

  • 更明确地说: conda create --unknown --offline -n​​ python3 python=3 (2认同)