“以下软件包将被更高优先级的频道取代”是啥意思?
Posted
技术标签:
【中文标题】“以下软件包将被更高优先级的频道取代”是啥意思?【英文标题】:What does "the following packages will be superseded by a higher priority channel" mean?“以下软件包将被更高优先级的频道取代”是什么意思? 【发布时间】:2017-05-18 14:41:16 【问题描述】:我正在尝试将fuzzywuzzy 安装到我在64 位Linux 中的Anaconda 发行版中。当我这样做时,它会尝试将我的conda
和conda-env
更改为conda-forge
频道。如下:
我通过写作在 anaconda 中搜索模糊 wuzzy:
anaconda search -t fuzzywuzzy
这表明在 64 位 Linux 上可用于 anaconda 的最新版本是频道 conda-forge
上提供的 0.13。
要安装,在命令行中输入:
conda install -c conda-forge fuzzywuzzy=0.13.0
我得到以下输出:
The following packages will be downloaded:
package | build
---------------------------|-----------------
conda-env-2.6.0 | 0 1017 B conda-forge
python-levenshtein-0.12.0 | py27_0 138 KB conda-forge
conda-4.2.13 | py27_0 375 KB conda-forge
fuzzywuzzy-0.11.0 | py27_0 15 KB conda-forge
------------------------------------------------------------
Total: 528 KB
The following new packages will be INSTALLED:
fuzzywuzzy: 0.11.0-py27_0 conda-forge
python-levenshtein: 0.12.0-py27_0 conda-forge
The following packages will be SUPERCEDED by a higher-priority channel:
conda: 4.2.13-py27_0 --> 4.2.13-py27_0 conda-forge
conda-env: 2.6.0-0 --> 2.6.0-0 conda-forge
Proceed ([y]/n)?
我不明白这是在告诉我什么。
这是什么意思?我是否认为这正在改变我的默认包管理器频道?如果我继续安装它可以逆转吗?有什么方法可以在不更改默认频道的情况下完成安装?或者是我应该做的有利于取代频道的事情?
我不想仅仅为一个模块改变我的分发,或者引起更多的麻烦。
这个问题:https://github.com/conda/conda/issues/2898 听起来像是在告诉我我应该让它发生。做什么?
(我使用的是anaconda版本:4.2.13和Python 2.7.12)
【问题讨论】:
它告诉你:你已经安装了来自默认频道的 conda 4.2.13 版本。 conda-forge 频道提供相同的版本。由于您为 conda-forge 通道提供了更高的优先级,因此 conda 将从 conda-forge 切换到包,即使它是相同的版本而不是更新。 感谢您的评论。你说:“既然你给了 conda-forge 频道更高的优先级” - 我在哪里做的?当我尝试从 conda-forge 安装时? @cel 您的评论将是一个很好的答案! @EmilVikström 是否建议将默认频道转移到 conda-forge?它是否提供了默认 conda 通道不提供的东西?如果我只想安装一个包,为什么它会自动尝试更改频道? @Chuck 我今天无法重现这种行为。fuzzywuzzy=0.13.0
似乎在 conda-forge
上不存在。您能否使用重现问题所需的步骤更新您的问题,最好包括更新版本的conda
以增加问题的相关性。
【参考方案1】:
当您要求 conda 从 conda-forge 安装 fuzzywuzzy
时,fuzzywuzzy
表示它需要 conda
和 conda-env
。 Conda 检测到您已经安装了这些,但它也知道这些是从默认通道而不是 conda-forge 安装的。
现在,作为用户,您可能希望默认频道和 conda-forge 频道中的 4.2.13-py27_0
完全相同(而且应该如此),但 conda 不能保证确实如此。开发人员很可能已经将不同的包上传到默认和 conda-forge 频道。
这会导致一些非常可疑的错误,并且为了避免这些 conda 更喜欢从与新包相同的通道安装依赖项。这就是消息的含义,一个包被相同的包替换,但来自不同的频道,您使用-c conda-forge
给予了更高的优先级。
【讨论】:
以上是关于“以下软件包将被更高优先级的频道取代”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章