【问题标题】:Python Anaconda: should I use `conda activate` or `source activate` in linuxPython Anaconda:我应该在 linux 中使用“conda activate”还是“source activate”
【发布时间】:2018-09-11 00:58:44
【问题描述】:

所以我习惯在启动 python Anaconda 环境时输入source activate <environment>。这工作得很好。但是,当我创建新的 conda 环境时,我在 Ubuntu 16.04 上看到了使用 conda activate 启动环境的消息。除了关于如何设置我的 shell 以使用conda activate 的错误之外,我仍然不清楚source activate ...conda activate ... 之间的区别是什么?有改变的理由吗?有谁知道这两个命令之间的区别?谢谢。

【问题讨论】:

    标签: python anaconda conda


    【解决方案1】:

    我在 Mac OS 上使用 Anaconda Navigator 1.8.2 和 Spyder 3.2.8,我认为类似于 Linux。

    使用 Anaconda 安装 virtualenv 非常容易:

    然后安装你想要的包

    【讨论】:

    • 感谢@pfRodenas,自从 Anaconda 首次问世以来,我就一直在使用它 :)。绝对比我们以前使用的 Enthought 发行版要好得多。但我的问题是关于使用conda 命令激活新环境。不过,我从未使用过 Anaconda 导航器。我想这是可以尝试的。
    【解决方案2】:

    从 conda 4.4 开始,conda activate 是激活环境的首选方式。通常,您不会发现 conda activate 和旧的 source activate 之间有太大的区别,只是它意味着更快,并且在不同的操作系统上工作相同(后者的区别使 conda activate 成为 巨大的改进IMO)。

    来自docs,关于conda版本4.4.0的发布(2017年12月发布):

    conda activate:重新设计了环境激活的逻辑和机制。在 conda 4.4 中,conda activate 和 conda deactivate 现在是激活和停用环境的首选命令。你会发现它们比以前 conda 版本中的 source activate 和 source deactivate 命令要快得多。 conda activate 命令还具有以下优点:(1) 在所有操作系统、shell 和平台上通用,以及 (2) 不会与来自其他包的脚本(如 python virtualenv 的 activate 脚本)发生路径冲突。

    【讨论】:

    • 啊,我明白了。我没有在文档中看到此部分,因此感谢您指出。我现在看到了不同。 Drat,现在我必须去更新我的 zsh 配置和 bash 配置,并且.... :)。
    • 是的......真的应该有人更新文档的其余部分,因为我发现的唯一信息(我在上面发布的内容)隐藏在发行说明中......
    • 哈哈,现在有太多的 Anaconda 文档,我想即使是 Continuum 的人也很难知道在每次更改后在哪里更新内容 :)。但我想这一切都是一样的。前几天我正在安装 Tensorflow-gpu,文档更糟糕——因为软件包安装与 cuda 版本等紧密相关。那是一种痛苦。至少 Anaconda 错误消息告诉我该怎么做:)。
    • conda activate 的问题在于它假定 conda 已经在您的 PATH 中; source activate 通常是我首先将 conda 放入 PATH 中的方式。
    • Conda 发行说明现在位于 docs.conda.io/projects/conda/en/latest/release-notes.html -- 向下滚动到 Conda 4.4.0 的发行说明,了解“conda activatesource activate”。
    【解决方案3】:

    这是我发现的一个不同之处。 source activate 可以在 bash 脚本的开头使用来加载 conda 环境,而 conda activate 会给我一个错误:

    CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
    

    这对我来说意义重大,因为我经常将 bash 作业提交到集群,而 source activate 是更改 conda 环境的唯一方法。

    如果有人可以在 bash 脚本中使用 conda activate,请纠正我。

    【讨论】:

    • 查看此链接:github.com/conda/conda/issues/7980。 bash 脚本开头的这两行代码将允许您在脚本中使用 conda activateCONDA_BASE=$(conda info --base) ; source $CONDA_BASE/etc/profile.d/conda.sh
    • 在 docker 文件中怎么样?
    【解决方案4】:

    我不确定谁会觉得这很有用,但如果

    1. 由于添加 >>> conda initialize,您的终端滞后

      ” 在您的 .bashrc 中,然后您决定将其删除并将 anaconda 添加到路径中。如果是这种情况,则“conda activate env_name” 不起作用,但“source activate env_name”会起作用,然后 也就是说,您可以使用 source activate 或 conda activate。如果你 关闭外壳然后再次激活环境使用“源 激活 env_name"

    2. 仅供参考,从我的 .bashrc 文件中删除 >>> conda initialize >>>" 加速我的终端,它不再滞后,我只是默认 使用“源激活 env_name”
    3. 我有 Ubuntu 20.04,conda 版本:4.10.3,和 conda-build 版本 : 3.21.5

    【讨论】:

      猜你喜欢
      • 2016-04-04
      • 2016-10-23
      • 1970-01-01
      • 2017-07-17
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      • 2020-12-13
      相关资源
      最近更新 更多