关于python:使用pip安装SciPy和NumPy

Installing SciPy and NumPy using pip

我正在尝试在我正在分发的包中创建所需的库。 它需要SciPy和NumPy库。
在开发过程中,我安装了两个

1
apt-get install scipy

安装了SciPy 0.9.0和NumPy 1.5.1,它运行良好。

我想使用pip install做同样的事情 - 以便能够在我自己的包的setup.py中指定依赖项。

问题是,当我尝试:

1
pip install 'numpy==1.5.1'

它工作正常。

但是之后

1
pip install 'scipy==0.9.0'

惨遭失败

1
2
3
4
5
6
7
8
9
10
11
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.

我如何让它工作?


这在Ubuntu 14.04上对我有用:

1
2
sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran
pip install scipy


如果您使用的是Ubuntu,则需要libblas和liblapack开发包。

1
2
aptitude install libblas-dev liblapack-dev
pip install scipy


我在答案中假设Linux经验;我发现让pip install scipy顺利进行有三个先决条件。

转到此处:安装SciPY

按照说明下载,构建和导出BLAS的env变量,然后是LAPACK。小心不要盲目地切断'n'粘贴shell命令 - 根据你的体系结构等,你需要选择几行,你需要修复/添加它错误地假定的正确目录。好。

您可能需要的第三件事是yum install numpy-f2py或等效的。

哦,是的,最后,您可能需要安装gcc-gfortran,因为上面的库是Fortran源代码。


由于之前关于使用yum安装的说明已经破坏,因此更新了有关像fedora这样的安装的说明。我在"亚马逊Linux AMI 2016.03"上测试了这个

1
2
sudo yum install atlas-devel lapack-devel blas-devel libgfortran
pip install scipy

我正在开发一个依赖于numpy和scipy的项目。在Fedora 23的干净安装中,使用Python 3.4的python虚拟环境(也适用于Python 2.7),以及我的setup.py中的以下内容(在setup()方法中)

1
2
3
4
5
6
7
setup_requires=[
    'numpy',
],
install_requires=[
    'numpy',
    'scipy',
],

我发现我必须运行以下命令才能让pip install -e .工作:

1
pip install --upgrade pip

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

redhat-rpm-config用于scipy使用redhat-hardened-cc1而不是常规cc1


在Windows上,使用python 3.5,我设法使用conda而不是pip安装scipy

1
conda install scipy


这是什么操作系统?答案可能取决于所涉及的操作系统。但是,您似乎需要找到此BLAS库并进行安装。它似乎不是在PIP中(你必须手动完成),但如果你安装它,它应该让你进步你的SciPy安装。


在我的情况下,升级pip就可以了。另外,我已经使用-U参数安装了scipy(将所有包升级到最后一个可用版本)