我目前正在一台没有root访问权限的计算机上安装Python的scikit-learn
包。在 Fedora 14 上使用 Python 2.7。
pip 未安装,所以我正在使用easy_install:
easy_install --prefix=$HOME/.local -U scikit-learn
安装过程抱怨未安装 BLAS。我过去曾尝试安装scipy,但在寻找和安装Atlas/BLAS时都遇到了麻烦。从那以后,我检查了 numpy 对 Atlas 没有问题:
>>> import numpy as np
>>> np.__config__.show()
atlas_threads_info:
libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']
library_dirs = ['/usr/lib/atlas']
language = f77
include_dirs = ['/usr/include']
blas_opt_info:
libraries = ['ptf77blas', 'ptcblas', 'atlas']
library_dirs = ['/usr/lib/atlas']
define_macros = [('ATLAS_INFO', '"\"3.8.3\""')]
language = c
include_dirs = ['/usr/include']
atlas_blas_threads_info:
libraries = ['ptf77blas', 'ptcblas', 'atlas']
library_dirs = ['/usr/lib/atlas']
language = c
include_dirs = ['/usr/include']
lapack_opt_info:
libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']
library_dirs = ['/usr/lib/atlas']
define_macros = [('ATLAS_INFO', '"\"3.8.3\""')]
language = f77
include_dirs = ['/usr/include']
lapack_mkl_info:
NOT AVAILABLE
blas_mkl_info:
NOT AVAILABLE
mkl_info:
NOT AVAILABLE
/usr/lib/atlas
存在,并且包含 .so 文件。
这是easy_install存在的错误:
error: Setup script exited with error: Command "gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/lib/python2.7/site-packages/numpy/core/include -I/usr/lib/python2.7/site-packages/numpy/core/include -I/usr/include/python2.7 -c sklearn/__check_build/_check_build.c -o build/temp.linux-i686-2.7/sklearn/__check_build/_check_build.o" failed with exit status 1
/usr/lib/python2.7/site-packages/numpy/distutils/misc_util.py:248: RuntimeWarning: Parent module 'numpy.distutils' not found while handling absolute import
from numpy.distutils import log
以及安装早期的警告:
/usr/lib/python2.7/site-packages/numpy/distutils/system_info.py:1392: 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.
因此,安装过程似乎找不到numpy或Atlas。我如何告诉它在哪里可以找到这些?
我宁愿在评论中问这个问题,但没有足够的声誉来这样做:
export ATLAS=/usr/lib/atlas/libatlas.so
之前easy_install
有帮助吗?
如果您没有root访问权限,并且想要安装自己的模块,virtualenv是要走的路。
要设置一个默认环境,只需执行以下操作:
$ pip install virtualenv
$ virtualenv ~/.default_env
# Add the activate script to the bashrc
$ echo "source ~/.default_env/bin/activate
在此之后,您可以使用 pip 或 easy_install 来安装您想要的任何软件包。
从源代码安装 numpy 和 scipy 有时会很棘手。如果你想要一个简单的出路,我建议建立一个科学的python发行版,它将安装一个带有所有必要库的单独python。那里有几种选择,我推荐 continuum.io 的蟒蛇,你可以在这里下载。