2

I am trying to install scikit-learn on my Windows 10 machine under python 3.

I have python 3 installed and working. In fact I installed a few other libraries without issue, e.g., pandas, matplotlib, beautifulsoup4.

My first attempt was a simple pip install scikit-learn. I got an error suggesting it was missing the dependency scipy, which I figured pip would handle for me, but whatever. I next did pip install scipy, and got a mess of errors. Again looks like I am missing a bunch of dependencies.

Below is the output of pip install scipy. Is there an easy way to install scikit-learn and scipy on Windows without having to manually handle all the dependencies?

Collecting scipy
Using cached scipy-0.19.0.zip
Installing collected packages: scipy
Running setup.py install for scipy: started
    Running setup.py install for scipy: finished with status 'error'
    Complete output from command c:\users\zrbec\appdata\local\programs\python\python36-32\python.exe -u -c "import setuptools, tokenize;__file__='C:\\Users\\zrbec\\AppData\\Local\\Temp\\pip-build-qrf49yza\\scipy\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\zrbec\AppData\Local\Temp\pip-_7iuqinl-record\install-record.txt --single-version-externally-managed --compile:

    Note: if you need reliable uninstall behavior, then install
    with pip instead of using `setup.py install`:

    - `pip install .`       (from a git repo or downloaded source
                            release)
    - `pip install scipy`   (last SciPy release on PyPI)


    lapack_opt_info:
    lapack_mkl_info:
    libraries mkl_rt not found in ['c:\\users\\zrbec\\appdata\\local\\programs\\python\\python36-32\\lib', 'C:\\', 'c:\\users\\zrbec\\appdata\\local\\programs\\python\\python36-32\\libs']
    NOT AVAILABLE

    openblas_lapack_info:
    libraries openblas not found in ['c:\\users\\zrbec\\appdata\\local\\programs\\python\\python36-32\\lib', 'C:\\', 'c:\\users\\zrbec\\appdata\\local\\programs\\python\\python36-32\\libs']
    NOT AVAILABLE

    atlas_3_10_threads_info:
    Setting PTATLAS=ATLAS
    c:\users\zrbec\appdata\local\programs\python\python36-32\lib\site-packages\numpy\distutils\system_info.py:1051: UserWarning: Specified path C:\projects\numpy-wheels\windows-wheel-builder\atlas-builds\atlas-3.10.1-sse2-32\lib is invalid.
    pre_dirs = system_info.get_paths(self, section, key)
    <class 'numpy.distutils.system_info.atlas_3_10_threads_info'>
    NOT AVAILABLE

    atlas_3_10_info:
    <class 'numpy.distutils.system_info.atlas_3_10_info'>
    NOT AVAILABLE

    atlas_threads_info:
    Setting PTATLAS=ATLAS
    <class 'numpy.distutils.system_info.atlas_threads_info'>
    NOT AVAILABLE

    atlas_info:
    <class 'numpy.distutils.system_info.atlas_info'>
    NOT AVAILABLE

    c:\users\zrbec\appdata\local\programs\python\python36-32\lib\site-packages\numpy\distutils\system_info.py:572: UserWarning:
        Atlas (http://math-atlas.sourceforge.net/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [atlas]) or by setting
        the ATLAS environment variable.
    self.calc_info()
    lapack_info:
    libraries lapack not found in ['c:\\users\\zrbec\\appdata\\local\\programs\\python\\python36-32\\lib', 'C:\\', 'c:\\users\\zrbec\\appdata\\local\\programs\\python\\python36-32\\libs']
    NOT AVAILABLE

    c:\users\zrbec\appdata\local\programs\python\python36-32\lib\site-packages\numpy\distutils\system_info.py:572: UserWarning:
        Lapack (http://www.netlib.org/lapack/) libraries not found.
        Directories to search for the libraries can be specified in the
        numpy/distutils/site.cfg file (section [lapack]) or by setting
        the LAPACK environment variable.
    self.calc_info()
    lapack_src_info:
    NOT AVAILABLE

    c:\users\zrbec\appdata\local\programs\python\python36-32\lib\site-packages\numpy\distutils\system_info.py:572: UserWarning:
        Lapack (http://www.netlib.org/lapack/) sources not found.
        Directories to search for the sources can be specified in the
        numpy/distutils/site.cfg file (section [lapack_src]) or by setting
        the LAPACK_SRC environment variable.
    self.calc_info()
    NOT AVAILABLE

    Running from scipy source directory.
    non-existing path in 'scipy\\integrate': 'quadpack.h'
    Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "C:\Users\zrbec\AppData\Local\Temp\pip-build-qrf49yza\scipy\setup.py", line 416, in <module>
        setup_package()
    File "C:\Users\zrbec\AppData\Local\Temp\pip-build-qrf49yza\scipy\setup.py", line 412, in setup_package
        setup(**metadata)
    File "c:\users\zrbec\appdata\local\programs\python\python36-32\lib\site-packages\numpy\distutils\core.py", line 135, in setup
        config = configuration()
    File "C:\Users\zrbec\AppData\Local\Temp\pip-build-qrf49yza\scipy\setup.py", line 336, in configuration
        config.add_subpackage('scipy')
    File "c:\users\zrbec\appdata\local\programs\python\python36-32\lib\site-packages\numpy\distutils\misc_util.py", line 1001, in add_subpackage
        caller_level = 2)
    File "c:\users\zrbec\appdata\local\programs\python\python36-32\lib\site-packages\numpy\distutils\misc_util.py", line 970, in get_subpackage
        caller_level = caller_level + 1)
    File "c:\users\zrbec\appdata\local\programs\python\python36-32\lib\site-packages\numpy\distutils\misc_util.py", line 907, in _get_configuration_from_setup_py
        config = setup_module.configuration(*args)
    File "scipy\setup.py", line 15, in configuration
        config.add_subpackage('linalg')
    File "c:\users\zrbec\appdata\local\programs\python\python36-32\lib\site-packages\numpy\distutils\misc_util.py", line 1001, in add_subpackage
        caller_level = 2)
    File "c:\users\zrbec\appdata\local\programs\python\python36-32\lib\site-packages\numpy\distutils\misc_util.py", line 970, in get_subpackage
        caller_level = caller_level + 1)
    File "c:\users\zrbec\appdata\local\programs\python\python36-32\lib\site-packages\numpy\distutils\misc_util.py", line 907, in _get_configuration_from_setup_py
        config = setup_module.configuration(*args)
    File "scipy\linalg\setup.py", line 20, in configuration
        raise NotFoundError('no lapack/blas resources found')
    numpy.distutils.system_info.NotFoundError: no lapack/blas resources found

    ----------------------------------------
zrbecker
  • 1,394
  • 1
  • 19
  • 39
  • Don't install it manually. Go to scipy's docs and read what they recommend. They don't recomment pip-based install (= from sources) on Windows and recomment alternatives like [anaconda](https://www.continuum.io/downloads) and co. (basically any project which builds these libs for us) which i highly recommend! Having an anaconda-distribution it's a one-liner (installed from ready binaries). The reason for this is: scipy needs a lot of dependencies not easily handled on windows like a C-compiler, Fortran-compiler, BLAS-library... (i'm a bit surprised pandas and matplotlib were easy to install) – sascha Apr 09 '17 at 00:04
  • I guess I will use anaconda then. Kind of annoying, seems like why have a package installer at all if it doesn't work with a major library like scipy. – zrbecker Apr 09 '17 at 00:19
  • Try to understand the internals. If you would use a well-setup linux (basically a simple ubuntu and 3-4 lines of apt-get install X), you can just ```pip install scipy```, but windows is just not equipped out of the box for stuff like that. And scipy is a huge project which partially uses decades-old code (Fortran) and highly optimized stuff with complex building. (there were windows builds of scipy in the past; but it seems it just was too much work) – sascha Apr 09 '17 at 00:20
  • 1
    You could also try using a binary installer from [this site](http://www.lfd.uci.edu/~gohlke/pythonlibs/). – BrenBarn Apr 09 '17 at 01:35

0 Answers0