【问题标题】:How to tell Python where Atlas is installed如何告诉 Python Atlas 的安装位置
【发布时间】:2014-04-02 19:40:26
【问题描述】:

我目前正在将 Python 的 scikit-learn 包安装在没有 root 访问权限的计算机上。在 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。我如何告诉它在哪里可以找到这些?

【问题讨论】:

    标签: python scikit-learn atlas


    【解决方案1】:

    从源代码安装 numpy 和 scipy 有时会很棘手。如果你想要一个简单的出路,我建议安装一个科学的 Python 发行版,它将安装一个包含所有必要库的单独的 Python。有几个选择,我推荐来自 continuum.io 的 anaconda,你可以download here

    【讨论】:

      【解决方案2】:

      如果您没有 root 访问权限并且想要安装自己的模块 virtualenv 是可行的方法。

      要设置一个默认环境,只需执行以下操作:

      $ pip install virtualenv
      $ virtualenv ~/.default_env
      
      # Add the activate script to the bashrc
      
      $ echo "source ~/.default_env/bin/activate
      

      之后,您可以使用 pip 或 easy_install 安装您想要的任何软件包。

      【讨论】:

        【解决方案3】:

        我更愿意在评论中提出这个问题,但没有足够的声誉这样做:

        export ATLAS=/usr/lib/atlas/libatlas.so 之前的easy_install 有帮助吗?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-11-13
          • 2018-05-16
          • 2022-01-21
          • 2014-01-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多