3

我最近将我的 CentOS6 服务器从 Python 2.6 更新到 2.7,只保留系统版本并使用 altinstall 方法。

# yum groupinstall "Development tools"
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

# wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tar.bz2
# tar xf Python-2.7.3.tar.bz2
# cd Python-2.7.3
# ./configure --prefix=/usr/local
# make && make altinstall

然后我安装了分发并通过它,虚拟环境

# wget http://pypi.python.org/packages/source/d/distribute/distribute-0.6.35.tar.gz
# tar xf distribute-0.6.35.tar.gz
# cd distribute-0.6.35
# python2.7 setup.py install

# easy_install-2.7 virtualenv
# virtualenv-2.7 --distribute someproject
New python executable in someproject/bin/python2.7
Also creating executable in someproject/bin/python
Installing distribute...................done.
Installing pip................done.
# source someproject/bin/activate
(someproject)# python --version
Python 2.7.3
(someproject)#

一切都很好,我激活了我的 virtualenv 并在那里安装了我需要的任何东西,除了一个例外,那些该死的 scipy 和 numpy 模块!当我尝试安装 scipy 时,出现以下错误:

error: 
    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.

我做了大量的研究和阅读,似乎问题不在于 virtualenv 设置,而在于 python2.7 安装,它似乎根本没有使用这些库。似乎也很难为这个版本的 Python 重新编译它们。是这种情况还是我在这里遗漏了什么?

你知道我怎样才能让我新安装的 python2.7 版本使用这些库吗?或者只是指出我正确的方向?

编辑:过去已经为 python2.6 安装了包含这些依赖项的 -dev 包,但是对于使用 altinstall 创建的新版本,它们无法访问。

4

1 回答 1

1

如果你的机器上已经有 BLAS 并且你知道它在哪里,你可以通过预先设置 'BLAS' 环境变量来使用它来构建 scipy。例如,

export BLAS=/path/to/libblas.so

教学说明:正如您所问的那样,这样做并不会将 Python2.7 本身指向 BLAS。您只是在告诉 scipy 在构建过程中在哪里可以找到 BLAS。Python 本身是无知的,一旦构建就直接使用 scipy。

此外,scipy.org 提供了所有常见 Linux 的详细安装说明。我的回答主要是对这里信息的反刍:

http://www.scipy.org/scipylib/building/linux.html

于 2013-10-10T10:21:44.627 回答