更新Anaconda和Conda base&;的正确方法是什么;环境?

更新Anaconda和Conda base&;的正确方法是什么;环境?,anaconda,conda,Anaconda,Conda,只是想知道更新Anaconda和Conda安装和虚拟环境的正确方法是什么。下面是我一步一步的困惑: 当我运行命令conda update anaconda时,它会更新/降级许多包 然后我运行了conda update conda,它再次更新/降级了一些包 接下来,我运行了conda update--update all它开始降级/升级不同的包 最后,为了确保所有内容都已更新,我再次运行了conda update anaconda。我本来希望看到一条消息,比如一切都是最新的,但令我惊讶的是,它再次

只是想知道更新Anaconda和Conda安装和虚拟环境的正确方法是什么。下面是我一步一步的困惑:

  • 当我运行命令
    conda update anaconda
    时,它会更新/降级许多包
  • 然后我运行了
    conda update conda
    ,它再次更新/降级了一些包
  • 接下来,我运行了
    conda update--update all
    它开始降级/升级不同的包
  • 最后,为了确保所有内容都已更新,我再次运行了
    conda update anaconda
    。我本来希望看到一条消息,比如一切都是最新的,但令我惊讶的是,它再次显示了大量需要再次更新/降级的软件包

    我做错了什么?在我看来,我似乎在用这些命令兜圈子。有什么帮助吗


  • 您本身并没有做错任何事情,但运行
    conda update anaconda
    conda update(所有这些都在同一个环境中紧跟在一起)没有多大意义,它们代表两种完全不同的配置

    更新蟒蛇 Anaconda是一个Python发行版,它捆绑了大量的包。据推测,需要进行一系列测试来验证所有包版本和构建是否相互兼容。因为这需要时间,Anaconda团队仅每隔几个月左右发布一次新发行版(即新的
    Anaconda
    版本)。如果您想要一组经过互操作性测试的稳定软件包,请执行
    conda update anaconda

    全部更新 在Anaconda发布之间,许多软件包的新版本仍然在Anaconda频道上发布,如果您运行
    conda update--all
    ,您将不可避免地领先于
    Anaconda
    捆绑包中指定的版本。如果您想要最新的单个软件包版本,并且不介意使用未经过完整集成测试的软件包构建,那么运行
    conda update--all

    值得注意的是,优先访问最新版本软件包的人似乎更喜欢,因为它往往有更频繁的软件包发布。然而,在我看来,如果你打算把大多数软件包都换成Conda Forge,那么安装Anaconda几乎毫无意义。取而代之的是,只需安装,并且只需在一开始就从Conda Forge安装您想要的

    无更新
    就个人而言,一旦我强化了项目的需求,我就很少在env上运行
    conda update
    每次更新环境时,都有可能破坏已编写的代码。相反,Conda使创建新环境变得非常容易,如果它们与其他环境有很多重叠,则环境可能会非常轻

    更新康达
    上面所有内容的一个例外是
    conda
    包,它正是您用来管理包和环境的基础设施。也就是说,您应该像任何其他软件包管理器一样进行更新(例如,
    pip
    homebrew

    anaconda-navigator
    
    生成的GUI图像如下所示,与此问题相关的唯一区别在于您看到“已安装”的位置,有一个“可更新”的下拉菜单,您只需在其中单击任何给定环境的更新依赖项

    一般信息

    我相信每个人都知道这一点,但对于任何不知道Anaconda navigator的人来说,它是一个点击式GUI,已经是Anaconda的一部分,并且对于管理、安装、更新和删除所有依赖项来说非常出色

    关于这个问题,它非常适合管理新环境中的所有依赖项、创建新环境、加载新通道。如果您在远程集群/服务器上加载了Anaconda,那么它通过X11远程工作得非常好


    对我来说,好处是我从未知道它会失败。

    在Anaconda的这篇文章中找到了有用的答案

    保持水蟒的最新状态 下面是一个经常被问到的问题,因此我决定发表一份答案,解释如何让巨蟒保持最新状态。这个问题最初是关于StackOverflow的

    我的电脑上安装了Anaconda,我想更新它。在里面 Navigator我可以看到有几个单独的包 可以更新,但也有一个水蟒包,有时有一个 版本号,有时表示自定义。我该如何进行

    答案 95%的人真正想要什么 在大多数情况下,当您说要更新Anaconda时,您希望执行以下命令:

    conda update --all
    
    这会将当前环境中的所有软件包更新为最新版本,小字是它可能会使用一些软件包的旧版本,以满足依赖性约束(通常这是不必要的,在必要时,软件包计划求解器会尽最大努力将影响降到最低)

    这需要从命令行执行,最好的方法是从Anaconda Navigator,然后是“环境”选项卡,然后单击根环境旁边的三角形,选择“打开终端”:

    此操作将只更新一个选定的环境(在本例中为根环境)。如果您有其他要更新的环境,可以重复上述过程,但首先单击环境。选中后,右侧有一个三角形标记(参见上图,步骤3)。或者,可以从命令行提供环境名称(-n envname)或路径(-p/path/to/env)。例如,要从上面的屏幕截图更新您的dspyr环境,请执行以下操作:

    conda update -n dspyr --all
    
    更新单个包 如果你只对Update感兴趣
    conda update astroid astropy
    
    conda create -n myspecialenv -c bioconda -c conda-forge python=3.5 pandas beautifulsoup seaborn nltk
    
    conda create -n myenv --clone root
    conda update -n myenv --all