【问题标题】:Cloning root environment with Anaconda使用 Anaconda 克隆根环境
【发布时间】:2015-07-29 06:44:06
【问题描述】:

通过tutorials on Anaconda 之一(极少数可用),我尝试了:

$ conda create -n rootclone --clone root

这失败了:

src_prefix: '/home/bir/conda'
dst_prefix: '/home/bir/conda/envs/rootclone'
Packages: 49
Files: 471
An unexpected error has occurred, please consider sending the
following traceback to the conda GitHub issue tracker at:

    https://github.com/conda/conda/issues

Include the output of the command 'conda info' in your report.


Traceback (most recent call last):
  File "/home/bir/conda/bin/conda", line 5, in <module>
    sys.exit(main())
  File "/home/bir/conda/lib/python2.7/site-packages/conda/cli/main.py", line 203, in main
    args_func(args, p)
  File "/home/bir/conda/lib/python2.7/site-packages/conda/cli/main.py", line 208, in args_func
    args.func(args, p)
  File "/home/bir/conda/lib/python2.7/site-packages/conda/cli/common.py", line 609, in inner
    return func(args, parser)
  File "/home/bir/conda/lib/python2.7/site-packages/conda/cli/main_create.py", line 50, in execute
    install.install(args, parser, 'create')
  File "/home/bir/conda/lib/python2.7/site-packages/conda/cli/install.py", line 170, in install
    clone(args.clone, prefix, json=args.json, quiet=args.quiet)
  File "/home/bir/conda/lib/python2.7/site-packages/conda/cli/install.py", line 91, in clone
    quiet=quiet)
  File "/home/bir/conda/lib/python2.7/site-packages/conda/misc.py", line 177, in clone_env
    data = s.encode('utf-8')
MemoryError

而且很糟糕。环境已创建:

$ conda info -e
# conda environments:
#
oracle                   /home/bir/conda/envs/oracle
oracleclone              /home/bir/conda/envs/oracleclone
rootclone                /home/bir/conda/envs/rootclone
root                  *  /home/bir/conda

但它根本不起作用:

$ . activate rootclone
discarding /home/bir/conda/bin from PATH
prepending /home/bir/conda/envs/rootclone/bin to PATH
(rootclone)bir@N2C:~/python$ which python
/usr/bin/python   # Should be in /home/bir/conda/envs/rootclone/bin

但这是一个真正的错误,还是conda create -n --clone 不是为克隆 conda 根环境而设计的?

【问题讨论】:

  • 对 GitHub 问题的快速搜索显示,还有其他人报告了类似的错误,但没有被告知“不要这样做,笨蛋”,例如 #1248
  • 同时,无论是在他们的问题跟踪器上还是在 StackOverflow 上,如果您告诉我们您使用的平台、您拥有的 Anaconda 版本、安装方式,您可能会获得更多/更好的帮助,等
  • 我看不出你为什么要克隆根用户。 Root 保存创建新环境时使用的默认包。您只能克隆 envs 文件夹中的环境。请注意,root 不在 envs 文件夹中。
  • 你应该可以克隆root就好了。 conda 环境不一定要在 envs 目录中才能成为环境。
  • 我认为您的内存不足,因为您正在尝试克隆包含其他环境的根目录。创建克隆的根后,它会尝试克隆克隆的根。它是递归的,会导致实用程序内存不足。

标签: python clone anaconda


【解决方案1】:

MemoryError 表示 conda 进程内存不足。也许您需要分配更多的交换内存。

【讨论】:

  • 我认为克隆尝试递归克隆根,从而创建 envs/rootclone 克隆为 envs/rootclone/envs/rootclone。
  • 克隆在非 root 环境中运行良好,所以我认为问题可能类似于 alvits 的建议......
  • 有谁知道这是否已修复并且克隆根环境是否安全?我做了一些搜索,但是有很多与错误和克隆根环境有关的帖子。
  • 检查我的答案,为我工作stackoverflow.com/a/48947435/973699
【解决方案2】:

使用以下命令克隆 Anaconda 的默认根环境,根环境命名为 base。这对我有用 Anaconda3-5.0.1

conda create --name <env_name> --clone base

【讨论】:

  • 努力创建一个新的环境。但是我收到一条消息:无法将以下软件包克隆出根环境:-conda-env-2.6.0-1 -conda-4.5.12-py37_0 -conda-build-3.17.6-py37_0。如果有人可以为此消息提供一些上下文以及为什么不克隆这些包,那将有助于理解。
  • 我得到了CondaEnvironmentNotFoundError: Could not find environment: base,而在使用Anaconda 4时不得不使用conda create --name &lt;env_name&gt; --clone root
猜你喜欢
  • 2019-01-02
  • 1970-01-01
  • 1970-01-01
  • 2017-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-14
  • 2020-05-06
相关资源
最近更新 更多