以下程序包将由更高优先级的通道进行超级处理

时间:2017-02-03 02:24:27

标签: python anaconda conda

当我尝试更新软件包时,我始终收到此消息,而且我通常只是继续进行,一切都正常。但是我担心我不小心创造了一个比我想要的更复杂的Anaconda环境。该线程(What does "the following packages will be superseded by a higher priority channel" mean?)提到给予其他频道更高的优先级。如果这就是我所做的,我该如何撤消它?

以下是该消息的示例:

conda install -c anaconda flask=0.12
Fetching package metadata .............
Solving package specifications: .

Package plan for installation in environment C:\Users\HMGSYS\Anaconda3:

The following packages will be SUPERCEDED by a higher-priority channel:

    conda:     4.3.8-py35_0  --> 4.2.13-py35_0 anaconda
    conda-env: 2.6.0-0       --> 2.6.0-0       anaconda

Proceed ([y]/n)?

但是,如果我没有指定版本号,它似乎想要降低我的烧瓶版本:

 conda install -c anaconda flask
Fetching package metadata .............
Solving package specifications: .

Package plan for installation in environment C:\Users\HMGSYS\Anaconda3:

The following packages will be UPDATED:

    anaconda:  4.3.0-np111py35_0 --> custom-py35_0 anaconda

The following packages will be SUPERCEDED by a higher-priority channel:

    conda:     4.3.8-py35_0      --> 4.2.13-py35_0 anaconda
    conda-env: 2.6.0-0           --> 2.6.0-0       anaconda
    flask:     0.12-py35_0       --> 0.11.1-py35_0 anaconda

Proceed ([y]/n)?

但我的主要问题不是关于烧瓶版本,而是询问我做了多少渠道,以及如何将其简化为一个。我已经看到一些建议修改.condarc文件的评论,但我没有(这是默认设置),所以我不认为这会造成问题。

如果这有帮助,我的conda信息输出是:

目前的conda安装:

           platform : win-64
      conda version : 4.3.8
   conda is private : False
  conda-env version : 4.3.8
conda-build version : 2.1.3
     python version : 3.5.2.final.0
   requests version : 2.12.4
   root environment : C:\Users\HMGSYS\Anaconda3  (writable)
default environment : C:\Users\HMGSYS\Anaconda3
   envs directories : C:\Users\HMGSYS\Anaconda3\envs
      package cache : C:\Users\HMGSYS\Anaconda3\pkgs
       channel URLs : https://repo.continuum.io/pkgs/free/win-64
                      https://repo.continuum.io/pkgs/free/noarch
                      https://repo.continuum.io/pkgs/r/win-64
                      https://repo.continuum.io/pkgs/r/noarch
                      https://repo.continuum.io/pkgs/pro/win-64
                      https://repo.continuum.io/pkgs/pro/noarch
                      https://repo.continuum.io/pkgs/msys2/win-64
                      https://repo.continuum.io/pkgs/msys2/noarch
        config file : None
       offline mode : False
         user-agent : conda/4.3.8 requests/2.12.4 CPython/3.5.2 Windows/10 Windows/10.0.14393

1 个答案:

答案 0 :(得分:10)

您正在编写的命令是

conda install -c anaconda flask

conda install告诉Conda安装软件包(显然),flask是软件包的名称。虽然您的.condarc文件中可能没有列出任何频道,但您告诉conda使用特定频道并将其设为最高优先级,并使用该命令的-c anaconda部分。因此conda install会访问网络并找到最佳的软件包匹配,考虑到您告诉它它应该更喜欢来自anaconda频道的软件包。但是,anaconda频道上没有flask=0.12,他们拥有的最高版本(适用于您的平台)为flask=0.11.1。您可以在此处查看该频道上可用的所有版本的列表:https://anaconda.org/anaconda/flask/files

所以这就是正在发生的事情

conda install -c anaconda flask=0.12

会查找可以从anaconda频道找到的所有软件包。它无法为您的平台找到flask=0.12,因此,既然已安装它,它就什么都不做。但是,它确实在该频道上找到condaconda-env的版本,因此它决定从anaconda频道下载它们,因为您给它的优先级最高,即使版本是低。

conda install -c anaconda flask

还会查找它可以从anaconda频道找到的所有软件包。由于您未指定flask的版本,conda会查找您在指定频道上找到的最新版本。由于您已经从其他渠道安装了flask(在本例中为defaults频道),因此从anaconda频道安装版本将取代您拥有的版本。