在 Amazon EC2 上安装 numpy

Posted

技术标签:

【中文标题】在 Amazon EC2 上安装 numpy【英文标题】:Installing numpy on Amazon EC2 【发布时间】:2013-09-14 22:48:03 【问题描述】:

我在 Amazon EC2 服务器上安装 numpy 时遇到问题。我试过在一个虚拟环境中使用easy_install、pip、pip,在另一个虚拟环境中使用python 2.7...

每次我尝试时,它都会失败并显示错误:gcc: internal compiler error: Killed (program cc1),然后我得到一堆 python 错误,使用 easy_install 我得到:ImportError: No module named numpy.distutils,使用 pip 我得到:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 72: ordinal not in range(128) .

EC2 实例正在运行内核 3.4.43-43.43.amzn1.x86_64。有人解决了这个问题吗? Numpy 对我来说一直很难安装,但我通常可以弄明白……此时我不在乎它是否在它自己的 virtualenv 中,我只想安装它。

【问题讨论】:

大多数 Linux 发行版都打包 numpy。我会用他们的包。 【参考方案1】:

安装 Numpy 的要求

c 编译器 (gcc) fortran 编译器 (gfortran) python 头文件 (2.4.x - 3.2.x) 强烈推荐 BLAS 或 LAPACK

我为install virtualenv and scikit-learn 编写了一个脚本以及所有依赖项。您可以跟进 numpy 安装,这非常简单。我复制了下面的相关代码。

sudo yum -y install gcc-c++ python27-devel atlas-sse3-devel lapack-devel
wget https://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.11.2.tar.gz
tar xzf virtualenv-1.11.2.tar.gz 
python27 virtualenv-1.11.2/virtualenv.py sk-learn
. sk-learn/bin/activate
pip install numpy

只需复制/粘贴,按 Enter,(喝杯咖啡),您就可以在 EC2 上使用 virtualenv 和 numpy。

如果要验证 numpy 是否找到了优化的线性代数库,请运行:

(sk-learn)[ec2-user@ip-10-99-17-223 ~]$ python -c "import numpy; numpy.show_config()"

如果您看到类似于以下内容的内容,则一切就绪。

atlas_threads_info:
    libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']
    library_dirs = ['/usr/lib64/atlas-sse3']
    define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')]
    language = f77
    include_dirs = ['/usr/include']
blas_opt_info:
    libraries = ['ptf77blas', 'ptcblas', 'atlas']
    library_dirs = ['/usr/lib64/atlas-sse3']
    define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')]
    language = c
    include_dirs = ['/usr/include']
atlas_blas_threads_info:
    libraries = ['ptf77blas', 'ptcblas', 'atlas']
    library_dirs = ['/usr/lib64/atlas-sse3']
    define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')]
    language = c
    include_dirs = ['/usr/include']
lapack_opt_info:
    libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']
    library_dirs = ['/usr/lib64/atlas-sse3']
    define_macros = [('ATLAS_INFO', '"\\"3.8.4\\""')]
    language = f77
    include_dirs = ['/usr/include']
lapack_mkl_info:
  NOT AVAILABLE
blas_mkl_info:
  NOT AVAILABLE
mkl_info:
  NOT AVAILABLE

更详细的解释可以阅读installing-scikit-learn-on-amazon-ec2。我专门写了这篇博文来记住安装步骤并有一个简短的操作指南。我尽量保持帖子和安装脚本是最新的。

【讨论】:

【参考方案2】:

我最终只是通过 yum,sudo yum install numpy 安装了 numpy。我想这是我目前能做的最好的了。当使用 virtualenv 并且我需要 numpy 时,我会告诉它使用站点包。

感谢@Robert 的建议。

【讨论】:

【参考方案3】:

仅用于存档。如果您正在运行 Ubuntu EC2 并且您已经安装了 pip,那么您可以执行以下操作:

对于 Python2:

pip install numpy --user

对于 Python 3:

pip3 install numpy --user

关键是user这个词。

【讨论】:

【参考方案4】:

您可以尝试使用来自https://www.continuum.io 的 Anaconda Python 发行版,它使用 conda Python 版本和包管理器。我发现这个发行版配置良好,方便科学计算工作。

我能够使用 wget 和他们下载网页上的 linux 下载链接下载并安装到 EC2 实例中。例如,对于 Python 2:

$ wget https://3230d63b5fc54e62148e-c95ac804525aac4b6dba79b00b39d1d3.ssl.cf1.rackcdn.com/Anaconda2-2.5.0-Linux-x86_64.sh

...

$ chmod a+x Anaconda2-2.5.0-Linux-x86_64.sh

$ ./Anaconda2-2.5.0-Linux-x86_64.sh

...

$ source .bashrc

$ conda create --name myEnvName biopython

$ source activate myEnvName

$ python -c '导入 numpy;打印(numpy.version.version)'

1.10.4

【讨论】:

最好还是从现有图像开始:docs.continuum.io/anaconda/amazon-aws

以上是关于在 Amazon EC2 上安装 numpy的主要内容,如果未能解决你的问题,请参考以下文章

在 Amazon EC2 实例上安装 php 和 apache

在 Amazon EC2 上安装 numpy

在Amazon EC2上安装numpy

无法在 Amazon EC2 上安装 inotify

在 Amazon Elastic Beanstalk(Apache、EC2)上安装 Mod_security

如何在 Amazon EC2 上安装支持 PNG 的 GraphicsMagick?