Scikit安装要求Scipy,即使它已安装

时间:2017-06-16 22:58:44

标签: python scikit-learn pip

我试图通过运行来安装Scikit:

pip install scikit-learn

当我运行它时,我收到此消息:

Collecting scikit-learn
  Using cached scikit-learn-0.18.1.tar.gz
Installing collected packages: scikit-learn
  Running setup.py install for scikit-learn ... error
    Complete output from command c:\python36\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\USER\\AppData\\Local\\Temp\\pip-build-3080ikpy\\scikit-learn\\setup.py';f=getatt
r(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\USER\AppData\Local\Temp\pip-04zx4iu6-record\i
nstall-record.txt --single-version-externally-managed --compile:
    Partial import of sklearn during the build process.
    Traceback (most recent call last):
      File "C:\Users\USER\AppData\Local\Temp\pip-build-3080ikpy\scikit-learn\setup.py", line 149, in get_scipy_status
        import scipy
      File "c:\python36\lib\site-packages\scipy\__init__.py", line 61, in <module>
        from numpy._distributor_init import NUMPY_MKL  # requires numpy+mkl
    ImportError: cannot import name 'NUMPY_MKL'
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "C:\Users\USER\AppData\Local\Temp\pip-build-3080ikpy\scikit-learn\setup.py", line 270, in <module>
        setup_package()
      File "C:\Users\USER\AppData\Local\Temp\pip-build-3080ikpy\scikit-learn\setup.py", line 260, in setup_package
        .format(scipy_req_str, instructions))
    ImportError: Scientific Python (SciPy) is not installed.
    scikit-learn requires SciPy >= 0.9.
    Installation instructions are available on the scikit-learn website: http://scikit-learn.org/stable/install.html

这似乎要求我安装Scipy,但是我已经安装了Scipy,确实如果我运行

pip install scipy

我得到了

Requirement already satisfied: scipy in c:\python36\lib\site-packages
Requirement already satisfied: numpy>=1.8.2 in c:\python36\lib\site-packages (from scipy)

1 个答案:

答案 0 :(得分:2)

您的安装显示了这一点:from numpy._distributor_init import NUMPY_MKL # requires numpy+mkl ImportError: cannot import name 'NUMPY_MKL'

所以你需要做一些事情。获得正确的SciPy:http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy

获得正确的NumPy:http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy

获得正确的SciKit学习:http://www.lfd.uci.edu/~gohlke/pythonlibs/#sci-kitlearn

现在执行pip uninstall其他每个包。然后在{NumPy 1st,SciPy 2nd,然后是Ski-kitlearn最后一次提供pip install您下载的轮子上。这应该可以解决您的问题。请注意,在这些链接中,您使用cp36‑cp36m‑win32.whlcp36‑cp36m‑win_amd64.whl下载文件,具体取决于您是否安装了32位或64位Python。