Instalación de numpy en Amazon EC2

Tengo problemas para instalar numpy en un servidor de Amazon EC2. He intentado usar easy_install, pip, pip dentro de un entorno virtual, pip dentro de otro entorno virtual usando python 2.7 …

Cada vez que lo bash, falla con el error: gcc: internal compiler error: Killed (program cc1) , y más adelante en la línea recibo un montón de errores de python, con easy_install obtengo: ImportError: No module named numpy.distutils , y con pip obtengo: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 72: ordinal not in range(128) .

La instancia de EC2 está ejecutando el kernel 3.4.43-43.43.amzn1.x86_64. ¿Alguien ha resuelto este problema? Numpy siempre me ha sido difícil de instalar, pero generalmente puedo resolverlo … en este momento no me importa si está en su propio virtualenv, solo quiero instalarlo.

Requisitos para la instalación de Numpy

  • c comstackdor (gcc)
  • comstackdor fortran (gfortran)
  • Archivos de cabecera de Python (2.4.x – 3.2.x)
  • Muy recomendado BLAS o LAPACK

Escribí un script para instalar virtualenv y scikit-learn junto con todas las dependencias. Puedes seguir hasta la instalación numpy, que es bastante sencilla. Copié el código correspondiente a continuación.

 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 

Simplemente copie / pegue, presione Enter, (tome una taza de café) y estará listo para comenzar con virtualenv y numpy en EC2.

Si desea verificar que numpy haya encontrado las bibliotecas de álgebra lineal optimizadas, ejecute:

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

Si ves algo similar a lo siguiente, estás listo.

 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 

Para una explicación más detallada, puede leer install-scikit-learn-on-amazon-ec2 . Escribí la publicación del blog específicamente para recordar los pasos de instalación y tener una breve guía de instrucciones. Intento mantener la publicación y el script de instalación actualizados.

Terminé simplemente instalando numpy a través de yum, sudo yum install numpy . Supongo que esto es lo mejor que puedo hacer por ahora. Cuando trabaje con virtualenv y necesito numpy, le diré que use los paquetes del sitio.

Gracias por la sugerencia de @Robert.

Sólo para el archivo. Si está ejecutando un Ubuntu EC2 y ya ha instalado pip, entonces puede hacer algo como:

para Python2:

 pip install numpy --user 

para Python 3:

 pip3 install numpy --user 

la clave es la palabra user .

Puede intentar usar la distribución Anaconda Python de https://www.continuum.io , que usa la versión de Conda Python y el administrador de paquetes. He encontrado que esta distribución está bien configurada y es conveniente para el trabajo científico informático.

Pude descargar e instalar en una instancia de EC2 usando wget y el enlace de descarga de Linux desde su página de descargas. Por ejemplo, para 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 active myEnvName

$ python -c ‘import numpy; imprimir (numpy.version.version) ‘

1.10.4