我更喜欢使用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-forge
次conda-forge
次更新?
修改:添加了有关conda config
输出和非切换行为的更多信息
答案 0 :(得分:1)
将通道添加到install命令会使该通道成为优先级最高的通道。如果您将conda-forge
频道添加到配置的末尾并且未在安装命令中指定它,您将从与其匹配的第一个频道获得依赖关系。