Instalando SciPy e NumPy usando pip

157

Estou tentando criar as bibliotecas necessárias em um pacote que estou distribuindo. Requer as bibliotecas SciPy e NumPy . Enquanto desenvolvia, instalei ambos usando

apt-get install scipy

que instalou o SciPy 0.9.0 e o NumPy 1.5.1 e funcionou bem.

Gostaria de fazer o mesmo usando pip install- para poder especificar dependências em um setup.py do meu próprio pacote.

O problema é que, quando tento:

pip install 'numpy==1.5.1'

Funciona bem.

Mas então

pip install 'scipy==0.9.0'

falha miseravelmente, com

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.

Como faço para que funcione?

Eran
fonte
Hmm, você tem certeza que o pip funciona bem em numpy=1.5.1vez de numpy==1.5.1(igual a dobro)?
Hugo Tavares
Estou usando o dobro é igual, isso foi um erro de digitação. Eu digitei-lo aqui, em vez de copiar colar :)
eran
5
Além de blas e lapack, você precisa instalar blas-devele lapack-devel. Isso não está especificado no documento, mas deve ser feito se você deseja instalar usando o PIP.
Iñigo Hernáez Corres
@ IñigoHernáezCorres (blas-devel e lapack-devel) também são YUMable, eu aprendi, para aqueles de nós no amazon-linux.
Tommy

Respostas:

34

Estou assumindo a experiência do Linux na minha resposta; Descobri que existem três pré-requisitos pip install scipypara prosseguir bem.

Acesse aqui: Instalando o SciPY

Siga as instruções para baixar, construir e exportar a variável env para BLAS e, em seguida, LAPACK . Cuidado para não apenas cortar e colar cegamente os comandos do shell - haverá algumas linhas que você precisará selecionar, dependendo da sua arquitetura etc., e precisará corrigir / adicionar os diretórios corretos que ele assume incorretamente como bem.

A terceira coisa que você pode precisar é instalar o numpy-f2py ou o equivalente.

Ah, sim, e por último, você pode precisar instalar o gcc-gfortran, pois as bibliotecas acima são fonte do Fortran .

David Kierans
fonte
instruções que ligados em Instalar SciPy foram removidos, pode estar ligando aqui agora scipy.org/scipylib/building/windows.html
jxramos
30
-1; esta resposta foi inutilizada pela quebra do link. A parte principal da resposta é "seguir as instruções" no link, mas a página mudou e elas não estão mais lá. Além disso, o solicitante estava usando um sistema operacional com apt-geto gerenciador de pacotes, mas essa resposta é válida yum. Não há nada errado em fornecer respostas que abranjam plataformas adicionais, mas elas devem ser sinalizadas como tal; isso será desnecessariamente confuso para os noobs do Unix.
Mark Amery
5
Para instalar o BLAS e o LAPACK, você precisa executaryum install lapack-devel.x86_64 blas-devel.x86_64
Max L
331

Isso funcionou para mim no Ubuntu 14.04:

sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran
pip install scipy
vk1011
fonte
4
A instalação foi libblas-dev liblapack-devresolvida, blasmas, em seguida, cheguei, error: library dfftpack has Fortran sources but no Fortran compiler foundentão eu precisava de tudo isso para poder instalar o scipy. Obrigado.
naoko
6
Eu apenas libblas-dev liblapack-dev gfortraninstalei, ele funciona para mim no Ubuntu14.04
Jin
libblas foi motivo com o erro - não LAPACK / recursos blas encontrada
Oleg Abrazhaev
1
Amém por respostas inaceitáveis ​​que funcionam melhor do que as aceitas.
Felipe Almeida
para yum: yum instale o blas-devel lapack-devel atlas-devel gcc-gfortran
Alec McGail 27/16 /
76

você precisa dos pacotes libblas e liblapack dev se estiver usando o Ubuntu.

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

Como as instruções anteriores para instalação com o yum estão quebradas, aqui estão as instruções atualizadas para instalação em algo como o fedora. Eu testei isso no "Amazon Linux AMI 2016.03"

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

Eu estava trabalhando em um projeto que dependia de numpy e scipy. Em uma instalação limpa do Fedora 23, usando um ambiente virtual python para Python 3.4 (também funcionou para Python 2.7), e com o seguinte em meu setup.py (no setup()método)

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

Eu descobri que precisava executar o seguinte para começar pip install -e .a trabalhar:

pip install --upgrade pip

e

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

O redhat-rpm-configé para o uso de scipy redhat-hardened-cc1em oposição ao regularcc1

Johann
fonte
3

No Windows python 3.5 , consegui instalar scipyusando conda not pip :

conda install scipy
CONvid19
fonte
2

Que sistema operacional é esse? A resposta pode depender do sistema operacional envolvido. No entanto, parece que você precisa encontrar esta biblioteca BLAS e instalá-la. Não parece estar no PIP (você terá que fazê-lo manualmente), mas se você o instalar, deverá permitir que você progrida na instalação do SciPy.

Shayne
fonte
É o Ubuntu 11.10. Eu tentei, esse é exatamente o meu problema. O que é a biblioteca e como faço para obtê-la?
eran
25
No Ubuntu, você pode fazer, por exemplo, sudo apt-get install liblapack-dev libatlas-devmais talvez também python-dev gfortranse estiver sentindo falta deles.
pv.
2
Eu não fiz esse post! Que diabos?
Shayne
0

no meu caso, a atualização do pip fez o truque. Além disso, instalei o scipy com o parâmetro -U (atualize todos os pacotes para a última versão disponível)

fanny
fonte