使用 conda 从特定通道安装软件包

dol*_*gom 10 anaconda conda conda-forge

我需要qtanaconda中5.12版本的包,但是安装了5.9.7版本。

>>> conda list qt -f
# packages in environment at /PATH/anaconda3/env/my_env
#
# Name                    Version                   Build  Channel
qt                        5.9.7                h5867ecd_1
Run Code Online (Sandbox Code Playgroud)

qt由于默认通道中的最新版本anaconda是 5.9.7( https://anaconda.org/anaconda/qt ),因此我想qt从通道安装软件包conda-forge,该通道的版本为 5.12.5( https://anaconda.qt )。 org/conda-forge/qt)。

qt所以我尝试使用此命令从conda-forge频道安装。

>>> conda install qt -c conda-forge --override-channels
Run Code Online (Sandbox Code Playgroud)

但 conda 没有qt从新通道安装,并打印出所有软件包已安装。

Collecting package metadata (current_repodata.json): done
Solving environment: done

# All requested packages already installed.
Run Code Online (Sandbox Code Playgroud)

仅供参考,我在 .condarc 中的通道配置是

channels:
  - defaults
  - conda-forge
channel_priority: disabled
Run Code Online (Sandbox Code Playgroud)

为什么 conda 不更新qt以及如何qt从渠道安装conda-forge?

Stu*_*erg 2

  1. 如果您想获得优先权,则您的.condarc文件指定错误。conda-forge你要这个:

    channels:
      - conda-forge
      - defaults
    channel_priority: flexible  # or 'strict'
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果您想要特定版本,请尝试在命令中指定版本。您甚至可以同时指定版本和特定的构建 ID:

    # This effectively means qt 5.12.*
    conda install -c conda-forge qt=5.12
    
    # You can also specify the exact version and build ID, if you happen to know them:
    conda install -c conda-forge qt=5.12.5=hd8c4c69_1
    
    Run Code Online (Sandbox Code Playgroud)