Instalar SciPy y NumPy usando pip

157

Estoy tratando de crear las bibliotecas necesarias en un paquete que estoy distribuyendo. Requiere las bibliotecas SciPy y NumPy . Durante el desarrollo, instalé ambos usando

apt-get install scipy

que instaló SciPy 0.9.0 y NumPy 1.5.1, y funcionó bien.

Me gustaría hacer lo mismo usando pip install- para poder especificar dependencias en un setup.py de mi propio paquete.

El problema es que cuando intento:

pip install 'numpy==1.5.1'

funciona bien.

Pero entonces

pip install 'scipy==0.9.0'

falla miserablemente, con

raise self.notfounderror(self.notfounderror.__doc__)

numpy.distutils.system_info.BlasNotFoundError:

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.

¿Cómo hago para que funcione?

eran
fuente
Hmm, ¿estás seguro de que el pip funciona bien en numpy=1.5.1lugar de numpy==1.5.1(doble igual)?
Hugo Tavares
Estoy usando dobles iguales, eso fue un error tipográfico. Simplemente lo
escribí
55
Además de blas y lapack, necesita instalar blas-devely lapack-devel. Esto no se especifica en el documento, pero debe hacerse si desea instalar mediante PIP.
Iñigo Hernáez Corres
@ IñigoHernáezCorres (blas-devel y lapack-devel) también son YUMable, he aprendido, para aquellos de nosotros en Amazon-Linux.
Tommy

Respuestas:

34

Asumo experiencia de Linux en mi respuesta; Encontré que hay tres requisitos previos pip install scipypara proceder bien.

Vaya aquí: Instalando SciPY

Siga las instrucciones para descargar, compilar y exportar la variable env para BLAS y luego LAPACK . Tenga cuidado de no solo cortar y pegar ciegamente los comandos de shell: habrá algunas líneas que deberá seleccionar según su arquitectura, etc., y deberá corregir / agregar los directorios correctos que asume incorrectamente como bien.

La tercera cosa que puede necesitar es instalar numpy-f2py o su equivalente.

Ah, sí y, por último, es posible que necesite instalar gcc-gfortran ya que las bibliotecas anteriores son fuente de Fortran .

David Kierans
fuente
las instrucciones que vinculó en Instalación de SciPy se han eliminado, podría estar vinculando aquí ahora scipy.org/scipylib/building/windows.html
jxramos
30
-1; Esta respuesta se ha vuelto inútil por la ruptura del enlace. El meollo de la respuesta es "seguir las instrucciones" en el enlace, pero la página ha cambiado y ya no están allí. Además, el autor de la pregunta estaba usando un sistema operativo con apt-getsu administrador de paquetes, pero esta respuesta sí yum. No hay nada de malo en proporcionar respuestas que cubran plataformas adicionales, pero deben estar señalizadas como tales; esto será innecesariamente confuso para los noobs de Unix de lo contrario.
Mark Amery
55
Para instalar BLAS y LAPACK necesitas ejecutaryum install lapack-devel.x86_64 blas-devel.x86_64
Max L
331

Esto funcionó para mí en Ubuntu 14.04:

sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran
pip install scipy
vk1011
fuente
44
La instalación se libblas-dev liblapack-devresolvió, blaspero luego la obtuve, error: library dfftpack has Fortran sources but no Fortran compiler foundasí que necesitaba todo esto para poder instalar scipy. Gracias.
Naoko
66
Acabo de instalar libblas-dev liblapack-dev gfortran, funciona para mí en Ubuntu14.04
Jin
libblas fue motivo de error - no se encontraron recursos de lapack / blas
Oleg Abrazhaev
1
Amén por las respuestas no aceptadas que funcionan mejor que las aceptadas.
Felipe
para yum: yum install blas-devel lapack-devel atlas-devel gcc-gfortran
Alec McGail
76

necesita los paquetes de desarrollo libblas y liblapack si está usando Ubuntu.

aptitude install libblas-dev liblapack-dev
pip install scipy
Chris Montanaro
fuente
13

Dado que las instrucciones anteriores para instalar con yum están rotas aquí están las instrucciones actualizadas para instalar en algo como fedora. He probado esto en "Amazon Linux AMI 2016.03"

sudo yum install atlas-devel lapack-devel blas-devel libgfortran
pip install scipy
Greg
fuente
6

Estaba trabajando en un proyecto que dependía de numpy y scipy. En una instalación limpia de Fedora 23, usando un entorno virtual de Python para Python 3.4 (también funcionó para Python 2.7), y con lo siguiente en mi setup.py (en el setup()método)

setup_requires=[
    'numpy',
],
install_requires=[
    'numpy',
    'scipy',
],

Descubrí que tenía que ejecutar lo siguiente para ir pip install -e .a trabajar:

pip install --upgrade pip

y

sudo dnf install atlas-devel gcc-{c++,gfortran} subversion redhat-rpm-config

El redhat-rpm-configes para uso de scipy redhat-hardened-cc1en lugar de regularcc1

Johann
fuente
3

En Windows python 3.5 , logré instalar scipyusando conda no pip :

conda install scipy
CONvid19
fuente
2

¿Qué sistema operativo es este? La respuesta puede depender del sistema operativo involucrado. Sin embargo, parece que necesita encontrar esta biblioteca BLAS e instalarla. No parece estar en PIP (así que tendrá que hacerlo a mano), pero si lo instala, debería permitirle avanzar en su instalación de SciPy.

Shayne
fuente
Es ubuntu 11.10. Lo intenté, ese es exactamente mi problema. ¿Qué es la biblioteca y cómo la consigo?
eran
25
En Ubuntu, puede hacer, por ejemplo, sudo apt-get install liblapack-dev libatlas-devmás tal vez también python-dev gfortransi los echa de menos.
pv.
2
¡No hice esa publicación! ¿Que demonios?
Shayne
0

en mi caso, la mejora de pip hizo el truco. Además, he instalado scipy con el parámetro -U (actualice todos los paquetes a la última versión disponible)

coño
fuente