最近,每当我尝试通过conda安装某些东西时,都会得到以下信息:
Fetching package metadata ...............
Solving package specifications: .
Package plan for installation in environment /Users/askates/anaconda3/envs/fastai:
The following packages will be DOWNGRADED:
blas: 1.1-openblas conda-forge --> 1.0-mkl
numpy: 1.14.5-py35_blas_openblashd3ea46f_201 conda-forge [blas_openblas] --> 1.14.3-py35h9bb19eb_2
scikit-learn: 0.19.2-py35_blas_openblas_200 conda-forge [blas_openblas] --> 0.19.1-py35h2b554eb_0
scipy: 1.1.0-py35_blas_openblashd3ea46f_201 conda-forge [blas_openblas] --> 1.1.0-py35hcaad992_0
如果我说“是”,然后尝试使用numpy,则会出现以下错误:
$ python
Python 3.5.5 | packaged by conda-forge | (default, Jul 23 2018, 23:45:11)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy as np
>>> np.__version__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'numpy' has no attribute '__version__'
为什么要这样做?我一直在使用标志--no-deps
来解决这个问题,但这是一个糟糕的解决方法。它可以升级回(正常工作的)openblas numpy,但是如果我尝试安装其他东西,则会再次执行相同的操作。
答案 0 :(得分:1)
conda-forge仓库使用openblas BLAS实施,而Anaconda仓库使用英特尔的MKL。从conda-forge安装您的软件包时,它似乎需要其他依赖项才能切换到openblas,但这样做没有成功。有时候,当conda出色的依赖项管理做的不是那么出色时,我会遇到这样的情况。通常,我会通过消除环境并从头开始创建新环境来解决它。在这种情况下,我可能首先尝试从Anaconda尝试此命令,以确保正确安装了openblas。
conda install nomkl numpy scipy scikit-learn numexpr
Relavent Anaconda MKL文档:https://docs.continuum.io/mkl-optimizations/