在Ubuntu中安装scikit-learn时有​​些麻烦

Jun*_* HU 0 python ubuntu blas atlas scikit-learn

我只是从https://pypi.python.org/pypi/scikit-learn/下载scikit-learn安装包.
在安装软件包之前,我使用apt-get安装了几个依赖软件包:

sudo apt-get install build-essential python-dev python-numpy python-setuptools python-scipy libatlas-dev
Run Code Online (Sandbox Code Playgroud)

在我转到安装目录后,我运行命令python setup.py install.但收到回复error: could not create '/usr/local/lib/python2.7/dist-packages/sklearn': Permission denied

我发现问题是关于ATLAS和BLAS,但我不熟悉它们.所以我需要一些帮助来解决它.我将详细信息粘贴在终端中:

Appending sklearn.__check_build configuration to sklearn
Ignoring attempt to set 'name' (from 'sklearn' to 'sklearn.__check_build')
Warning: Assuming default configuration (svm/tests/{setup_tests,setup}.py was not found)Appending sklearn.svm.tests configuration to sklearn.svm
Ignoring attempt to set 'name' (from 'sklearn.svm' to 'sklearn.svm.tests')
/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py:1423: 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.
  warnings.warn(AtlasNotFoundError.__doc__)
Appending sklearn.svm configuration to sklearn
Ignoring attempt to set 'name' (from 'sklearn' to 'sklearn.svm')
Appending sklearn.datasets configuration to sklearn
Ignoring attempt to set 'name' (from 'sklearn' to 'sklearn.datasets')
Warning: Assuming default configuration (./datasets/tests/setup_datasets/{setup_datasets/tests,setup}.py was not found)Appending sklearn.datasets/tests configuration to sklearn
Ignoring attempt to set 'name' (from 'sklearn' to 'sklearn.datasets/tests')
Appending sklearn.feature_extraction configuration to sklearn
Ignoring attempt to set 'name' (from 'sklearn' to 'sklearn.feature_extraction')
Warning: Assuming default configuration (./feature_extraction/tests/setup_feature_extraction/{setup_feature_extraction/tests,setup}.py was not found)Appending sklearn.feature_extraction/tests configuration to sklearn
Ignoring attempt to set 'name' (from 'sklearn' to 'sklearn.feature_extraction/tests')
Traceback (most recent call last):
  File "setup.py", line 91, in <module>
    setup(**configuration(top_path='').todict())
  File "setup.py", line 23, in configuration
    config.add_subpackage('cluster')
  File "/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py", line 1002, in add_subpackage
    caller_level = 2)
  File "/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py", line 971, in get_subpackage
    caller_level = caller_level + 1)
  File "/usr/lib/python2.7/dist-packages/numpy/distutils/misc_util.py", line 883, in _get_configuration_from_setup_py
    ('.py', 'U', 1))
  File "./cluster/setup.py", line 8, in <module>
    from sklearn._build_utils import get_blas_info
ImportError: No module named sklearn._build_utils
hujun@hujun-OptiPlex-790:~/??/scikit-learn-0.14.1/sklearn$ cd ..
hujun@hujun-OptiPlex-790:~/??/scikit-learn-0.14.1$ python setup.py install
Partial import of sklearn during the build process.
blas_opt_info:
blas_mkl_info:
  libraries mkl,vml,guide not found in /usr/local/lib
  libraries mkl,vml,guide not found in /usr/lib
  libraries mkl,vml,guide not found in /usr/lib/x86_64-linux-gnu
  NOT AVAILABLE

atlas_blas_threads_info:
Setting PTATLAS=ATLAS
  libraries ptf77blas,ptcblas,atlas not found in /usr/local/lib
  libraries ptf77blas,ptcblas,atlas not found in /usr/lib
  libraries ptf77blas,ptcblas,atlas not found in /usr/lib/x86_64-linux-gnu
  NOT AVAILABLE

atlas_blas_info:
  libraries f77blas,cblas,atlas not found in /usr/local/lib
  libraries f77blas,cblas,atlas not found in /usr/lib
  libraries f77blas,cblas,atlas not found in /usr/lib/x86_64-linux-gnu
  NOT AVAILABLE

/usr/lib/python2.7/dist-packages/numpy/distutils/system_info.py:1423: 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.
  warnings.warn(AtlasNotFoundError.__doc__)
blas_info:
  libraries blas not found in /usr/local/lib
  FOUND:
    libraries = ['blas']
    library_dirs = ['/usr/lib']
    language = f77

  FOUND:
    libraries = ['blas']
    library_dirs = ['/usr/lib']
    define_macros = [('NO_ATLAS_INFO', 1)]
    language = f77

sklearn/setup.py:77: UserWarning: 
    Blas (http://www.netlib.org/blas/) libraries not found.
    Directories to search for the libraries can be specified in the
    numpy/distutils/site.cfg file (section [blas]) or by setting
    the BLAS environment variable.
  warnings.warn(BlasNotFoundError.__doc__)
running install
running build
running config_cc
unifing config_cc, config, build_clib, build_ext, build commands --compiler options
running config_fc
unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
running build_src
build_src
building library "libsvm-skl" sources
building library "cblas" sources
building extension "sklearn.__check_build._check_build" sources
building extension "sklearn.svm.libsvm" sources
building extension "sklearn.svm.liblinear" sources
building extension "sklearn.svm.libsvm_sparse" sources
building extension "sklearn.datasets._svmlight_format" sources
building extension "sklearn.feature_extraction._hashing" sources
building extension "sklearn.cluster._hierarchical" sources
building extension "sklearn.cluster._k_means" sources
building extension "sklearn.ensemble._gradient_boosting" sources
building extension "sklearn.utils.sparsetools._min_spanning_tree" sources
building extension "sklearn.utils.sparsetools._traversal" sources
building extension "sklearn.utils.sparsetools._graph_tools" sources
building extension "sklearn.utils.arraybuilder" sources
building extension "sklearn.utils.sparsefuncs" sources
building extension "sklearn.utils.arrayfuncs" sources
building extension "sklearn.utils.murmurhash" sources
building extension "sklearn.utils.lgamma" sources
building extension "sklearn.utils.graph_shortest_path" sources
building extension "sklearn.utils.seq_dataset" sources
building extension "sklearn.utils.weight_vector" sources
building extension "sklearn.utils.random" sources
building extension "sklearn.utils._logistic_sigmoid" sources
building extension "sklearn.neighbors.ball_tree" sources
building extension "sklearn.neighbors.kd_tree" sources
building extension "sklearn.neighbors.dist_metrics" sources
building extension "sklearn.neighbors.typedefs" sources
building extension "sklearn.metrics.pairwise_fast" sources
building extension "sklearn.tree._tree" sources
building extension "sklearn.metrics/cluster.expected_mutual_info_fast" sources
building extension "sklearn._hmmc" sources
building extension "sklearn._isotonic" sources
building extension "sklearn.linear_model.cd_fast" sources
building extension "sklearn.linear_model.sgd_fast" sources
building extension "sklearn.utils.sparsetools._min_spanning_tree" sources
building extension "sklearn.utils.sparsetools._traversal" sources
building extension "sklearn.utils.sparsetools._graph_tools" sources
building extension "sklearn.utils.arraybuilder" sources
building extension "sklearn.utils.sparsefuncs" sources
building extension "sklearn.utils.arrayfuncs" sources
building extension "sklearn.utils.murmurhash" sources
building extension "sklearn.utils.lgamma" sources
building extension "sklearn.utils.graph_shortest_path" sources
building extension "sklearn.utils.seq_dataset" sources
building extension "sklearn.utils.weight_vector" sources
building extension "sklearn.utils.random" sources
building extension "sklearn.utils._logistic_sigmoid" sources
building data_files sources
build_src: building npy-pkg config files
running build_py
running build_clib
customize UnixCCompiler
customize UnixCCompiler using build_clib
running build_ext
customize UnixCCompiler
customize UnixCCompiler using build_ext
resetting extension 'sklearn.svm.liblinear' language from 'f77' to 'c++'.
customize UnixCCompiler
customize UnixCCompiler using build_ext
customize GnuFCompiler
Could not locate executable g77
Could not locate executable f77
customize IntelFCompiler
Could not locate executable ifort
Could not locate executable ifc
customize LaheyFCompiler
Could not locate executable lf95
customize PGroupFCompiler
Could not locate executable pgf90
Could not locate executable pgf77
customize AbsoftFCompiler
Could not locate executable f90
customize NAGFCompiler
Could not locate executable f95
customize VastFCompiler
customize CompaqFCompiler
Could not locate executable fort
customize IntelItaniumFCompiler
Could not locate executable efort
Could not locate executable efc
customize IntelEM64TFCompiler
customize Gnu95FCompiler
Could not locate executable gfortran
customize G95FCompiler
Could not locate executable g95
customize PathScaleFCompiler
Could not locate executable pathf95
don't know how to compile Fortran code on platform 'posix'
warning: build_ext: f77_compiler=None is not available.

running scons
running install_lib
creating /usr/local/lib/python2.7/dist-packages/sklearn
error: could not create '/usr/local/lib/python2.7/dist-packages/sklearn': Permission denied
Run Code Online (Sandbox Code Playgroud)

Mar*_*hen 14

问题不在于ATLAS和BLAS,而是你需要成为超级用户才能写入/ usr目录.尝试

sudo  python setup.py install
Run Code Online (Sandbox Code Playgroud)

另一种(也可能更简单)方法是从ubuntu存储库直接安装:

sudo apt-get install python-sklearn
Run Code Online (Sandbox Code Playgroud)