安装`conda-forge`包时如何更喜欢`defaults` numpy over`conda-forge` numpy

时间:2017-10-27 13:57:22

标签: numpy packages conda

我更喜欢使用Continuum提供的常用defaults频道中的MKL工具链。但是,与许多人一样,我发现自己在conda-forge频道安装了不少套餐。

例如,考虑python-graphviz包。安装命令是

conda install -c conda-forge python-graphviz

导致对依赖项的一些不希望的更改

The following packages will be UPDATED:

cvxopt:          1.1.7-py27_0          --> 1.1.9-py27_blas_openblas_201  conda-forge [blas_openblas]
gsl:             2.2.1-h8267d9d_2      --> 2.2.1-blas_openblas_2         conda-forge [blas_openblas]
numpy:           1.13.3-py27hbcc08e0_0 --> 1.13.3-py27_blas_openblas_200 conda-forge [blas_openblas]
scikit-learn:    0.19.1-py27h445a80a_0 --> 0.19.1-py27_blas_openblas_200 conda-forge [blas_openblas]
scipy:           0.19.1-py27h1edc525_3 --> 0.19.1-py27_blas_openblas_202 conda-forge [blas_openblas]

我不想更改为OpenBlas numpy,因此我手动处理所有依赖项,然后

conda install -c conda-forge --no-deps python-graphviz

工作正常但很费力并且会犯错误。

我原以为如果我将conda-forge添加为

的低优先级频道
conda config --append channels conda-forge

然后它会停止尝试覆盖numpy安装,但事实证明这是不真实的。正如预期的那样,conda config --show的输出现在包含

channel_alias: https://conda.anaconda.org
channel_priority: True
channels:
  - defaults
  - conda-forge

但如果我尝试安装一些东西(没有命令行开关),比如conda install pycwt,那么我仍然可以

Package plan for installation in environment /conda:

The following NEW packages will be INSTALLED:

  pycwt:        0.3.0a22-py_0         conda-forge
  tqdm:         4.19.4-py27hdfef72e_0            

The following packages will be UPDATED:

  cvxopt:       1.1.7-py27_0                      --> 1.1.9-py27_blas_openblas_201  conda-forge [blas_openblas]
  gsl:          2.2.1-h8267d9d_2                  --> 2.2.1-blas_openblas_2         conda-forge [blas_openblas]
  numpy:        1.13.3-py27hbcc08e0_0             --> 1.13.3-py27_blas_openblas_200 conda-forge [blas_openblas]
  scikit-learn: 0.19.1-py27h445a80a_0             --> 0.19.1-py27_blas_openblas_200 conda-forge [blas_openblas]
  scipy:        0.19.1-py27h1edc525_3             --> 0.19.1-py27_blas_openblas_202 conda-forge [blas_openblas]

安装defaults软件包时,有没有办法优先conda-forgeconda-forge次更新?

修改:添加了有关conda config输出和非切换行为的更多信息

1 个答案:

答案 0 :(得分:1)

将通道添加到install命令会使该通道成为优先级最高的通道。如果您将conda-forge频道添加到配置的末尾并且未在安装命令中指定它,您将从与其匹配的第一个频道获得依赖关系。