0

为什么/如何conda update --all决定升级到 conda-forge 包(在本例中为 spyder)的构建,它似乎不是最新的?

我确实有一个.condarc包含内容的文件

    channels:
     - conda-forge
     - defaults

此外,当我这样做时,conda search spyder --channel conda-forge | grep forge | grep 4.1 | grep py37我得到

    spyder      4.1.0  py37hc8dfbb8_0  conda-forge         
    spyder      4.1.1  py37hc8dfbb8_1  conda-forge         

4.1.*即这个频道上似乎有版本。

然而,我要做的conda update --all只是

    ~>conda list | grep spyder
    spyder      4.0.1  py37_0    conda-forge

为什么会这样?这合适吗?我错过了什么?

澄清一下:我没有在我的系统上“固定”任何其他软件包的版本。此外,如果我查看系统上安装的所有软件包,绝不会只安装 py37_0 版本。事实上,通过conda update --all.

更新:

这绝对不是对原始问题的“答案”——只是一个不知从何而来的不明确的解决方案。我所做的是在没有特别原因的情况下来conda回切换频道(只是希望它可以解决 condapkgs/main中的一些问题)。conda-forge之后它仍然不想updatespyder 4.1.1,但它确实允许我使用install4.1.1(即使用conda install spyder=4.1.1. 这当然不是正确的行为,而是 conda 的一些小问题。

4

2 回答 2

1

我有时也会遇到这个问题,而且原因并不是那么线性。

第一个原因可能是通道优先级,您可以尝试使用“--”完全禁用它channel_priority: disabled或启动它

第二个可能是依赖关系:也许你需要升级的其他东西不存在,或者为了升级你的spyder包而降级了一些东西,并且解析器找到的最佳折衷方案不是你所期望的。

第三个可能是,当您第一次安装spyder时,您通过指定版本来完成它,这会固定它。

第四种可能是解析器遗漏了要点,它有时会发生:您应该明确说明您绝对要升级哪些软件包,例如conda update spyder --all. 此外,您可以明确告诉哪些软件包需要积极升级,配置“aggressive_update_packages”。

于 2020-04-02T08:32:40.437 回答
0

蛮力修复。

$HOME在某个地方设置一个临时文件/u/user/condatemp/,并确保.condarc该目录中没有。

在那里导航 - 创建您的环境。安装时spyder尝试使用该channel/label/labelname方法。

conda install -c conda-forge/label/blah-blah spyder -y

希望这可以帮助

于 2020-04-02T13:57:16.303 回答