【发布时间】:2017-10-27 13:57:22
【问题描述】:
我更喜欢使用 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]
当我安装conda-forge 软件包时,有没有办法让defaults 比conda-forge 更新更受欢迎?
编辑:添加了有关conda config 输出和非开关行为的更多信息
【问题讨论】:
-
conda-forge 现在提供了 MKL 构建的 numpy 版本。您的问题特别要求为 MKL 保留默认版本的 numpy ......但另一种解决方案是使用使用 MKL 构建的 conda-forge 版本的 numpy。见github.com/conda-forge/numpy-feedstock/issues/…