使用pip安装SciPy

211

可以使用pip install numpy命令使用pip安装NumPy

那么SciPy是否有类似的安装方法呢?(只使用pip install scipy是不起作用的。)


更新

现在可以使用pip安装SciPy软件包!


3
也许你应该重新考虑接受的答案(也许是knoxxs的答案?)。我认为通过git安装不应该是首选方法! :) - Andy Hayden
11
因为最近几个版本不能简单地进行 pip install,所以它又变得重要了。 - erikbstack
15个回答

218

前提条件:

sudo apt-get install build-essential gfortran libatlas-base-dev python-pip python-dev
sudo pip install --upgrade pip

实际软件包:

sudo pip install numpy
sudo pip install scipy

可选包:

sudo pip install matplotlib   OR  sudo apt-get install python-matplotlib
sudo pip install -U scikit-learn
sudo pip install pandas

参考链接


2
注意:是 build-essential :) - Andy Hayden
32
“sudo pip install” 不是一个通用的答案模式。通常情况下,你应该在你的虚拟环境中执行“pip install”。 - erikbstack
1
这解决了我的问题,谢谢!对于Mac用户来说,libatlas-base-dev已经随操作系统安装了,而gfortran可以通过包安装(https://gcc.gnu.org/wiki/GFortranBinariesMacOS)。 - robodasha
回应erikb85的话,一个人不应该习惯于使用sudo pip install安装Python库。使用virtualenvvirtualenvwrapper。我的常规模式是sudo apt-get install python-pip,然后是sudo pip install virtualenvwrapper。之后所有东西都放在virtualenv中。 - DanielSank
请确保您有足够的内存(即在某些VPS上运行安装程序),如果需要,请创建交换文件。在这种情况下,错误消息类似于:c++:内部编译器错误:已终止(程序cc1plus)错误:命令“c++ -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -fPIC -D__STDC_FORMAT_MACROS=1 -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/usr/include/python2.7 -c scipy/sparse/sparsetools/csr_wrap.cxx -o build/temp.linux-x86_64-2.7/scipy/sparse/sparsetools/csr_wrap.o”失败,退出状态为4 - Tomislav Muic
这个答案比被采纳的更好。事实上,被采纳的方法是愚蠢的。 - Trect

107

easy_install的尝试表明了列表Python软件包索引中存在问题,该索引由pip搜索。

easy_install scipy
Searching for scipy
Reading http://pypi.python.org/simple/scipy/
Reading http://www.scipy.org
Reading http://sourceforge.net/project/showfiles.php?group_id=27747&package_id=19531
Reading http://new.scipy.org/Wiki/Download

但并非一切都已经失去;pip可以从Subversion(SVN)、GitMercurialBazaar存储库中进行安装。SciPy使用SVN:

pip install svn+http://svn.scipy.org/svn/scipy/trunk/#egg=scipy

更新(2012年12月):

pip install git+https://github.com/scipy/scipy.git

由于NumPy是一个依赖项,因此也应该安装它。


1
太棒了!对我而言,这是成功的关键:pip install svn+http://svn.scipy.org/svn/scipy/trunk请注意,在 https://dev59.com/xHRB5IYBdhLWcg3wWGAH 上,你还可以选择一个给定版本(比如说 5839,我相信这是最新稳定版,0.7.1):pip install http://svn.scipy.org/svn/scipy/!svn/bc/5839/trunk/不过我还没有测试过这个... - Olivier Verdier
+1 为了长久性和稳健性。这个方法在我使用的OSX 10.8.2和python 2.7上仍然有效。标准的 pip install scipy 在fortan编译期间失败(即使成功安装了 brew install gfortranpip install numpy)。svn安装可以避免@lokalhort的github repo安装,适用于python3或@elaichi的依赖项 apt-get 适用于ubuntu。 - hobs
2
据推测,这意味着您获取的是最新的scipy而不是稳定版本。 - Andy Hayden
对我没有用。但这似乎是一个好的解决方案。我猜我有一些其他问题,所以这个解决方案不起作用。 - Amir Md Amiruzzaman

33

在Ubuntu 10.04 (Lucid)中,在安装了一些依赖项(特别是以下依赖项)之后,我可以成功地在虚拟环境中使用pip install scipy安装scipy:

$ sudo apt-get install libamd2.2.0 libblas3gf libc6 libgcc1 libgfortran3 liblapack3gf libumfpack5.4.0 libstdc++6 build-essential gfortran libatlas-sse2-dev python-all-dev

5
现在应该使用“libatlas-base-dev”而不是“libatlas-sse2-dev”。 - madCode
1
$ sudo apt-get install libamd2.2.0 libblas3gf libc6 libgcc1 libgfortran3 liblapack3gf libumfpack5.4.0 libstdc++6 build-essential gfortran libatlas-dev libatlas3-base python python-all-dev gcc g++ libblas-dev liblapack-dev请执行以上命令以安装所需的程序包。 - elimisteve
在 Ubuntu 12.04 上:sudo aptitude install python-scipy - Ciro Santilli OurBigBook.com
14
如果您想使用最新版本的scipy,最好执行sudo apt-get build-dep python-scipy,然后从pip安装scipy。 - Ibrahim

23

在Windows上安装Scipy,请按照以下步骤进行:

步骤1:单击此链接http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy下载一个Scipy的.whl文件(例如:scipy-0.17.0-cp34-none-win_amd64.whl)。

步骤2:从命令提示符中进入该下载文件所在的目录(cd 文件夹名称)。

步骤3:运行此命令:

pip install scipy-0.17.0-cp27-none-win_amd64.whl

3
只有这个选项在Windows上对我有帮助。 - coms
3
这个选项在我使用的Windows7 Cygwin 64位系统上无法运行:scipy-0.17.1-cp27-cp27m-win_amd64.whl不支持在这个平台上使用。 - niken
@Nik 我收到了相同的信息。我认为这是因为你的 Python 实例是32位的。对我来说,下载并安装“scipy-0.18.1-cp27-cp27m-win32.whl”有效。 - Robin Kramer-ten Have
这对我在Windows上起作用了,我需要通过使用那个网站上的软件包重新安装numpy,然后一切都正常工作了。 - josehzz

19

我尝试了以上所有方法,但都不起作用。这个方法解决了我所有的问题:

pip install -U numpy

pip install -U scipy
请注意,使用pip install命令时的-U选项会请求升级软件包,如果不加该选项且软件包已经安装,则pip会告诉你已安装,并退出而不执行任何操作。

13

如果我先安装BLAS、LAPACK和GCC Fortran作为系统软件包(我使用Arch Linux),我可以使用以下命令安装SciPy:

pip install scipy

1
你如何安装 BLAS?对我来说,“pip install blas”和“apt-get install blas”都失败了。 - eran
@Eran blas是一个ArchLinux软件包。因此,您可以通过pacman -S blas进行安装。 - chao787

13
在 Fedora 上,这样做可以生效:
sudo yum install -y python-pip
sudo yum install -y lapack lapack-devel blas blas-devel 
sudo yum install -y blas-static lapack-static
sudo pip install numpy
sudo pip install scipy
如果在下载过程中遇到任何公钥错误,请将--nogpgcheck作为参数添加到yum中,例如:yum --nogpgcheck install blas-devel
从 Fedora 23 开始,请使用dnf而不是yum

在我的虚拟环境中,我将建议解决方案的最后两行更改为以下行: sudo pip install --upgrade pip sudo pip install -U numpy sudo pip install -U scipy - 1man

7

对于Arch Linux用户:

pip install --user scipy需要先安装以下Arch包:

  • gcc-fortran
  • blas
  • lapack

1
很好知道,但最好作为对@user437730答案的编辑或评论。 - Ryne Everett
我该如何安装这些软件包?例如gcc-fortran、blas和lapack。 - user3731622

3

Ubuntu的插件(Ubuntu 10.04 LTS(Lucid Lynx)):

软件库已经迁移,但是

pip install -e git+http://github.com/scipy/scipy/#egg=scipy

对我来说失败了...按照以下步骤,最终解决了问题(在虚拟环境中以root身份进行,其中python3是指向Python 3.2.2的链接):安装Ubuntu依赖项(见elaichi),克隆NumPy和SciPy:

git clone git://github.com/scipy/scipy.git scipy

git clone git://github.com/numpy/numpy.git numpy

构建NumPy(在numpy文件夹中):

python3 setup.py build --fcompiler=gnu95

安装SciPy(在scipy文件夹中):

python3 setup.py install

3
答案是肯定的,确实有安装numpy的方法。
首先,您可以使用以下命令轻松安装numpy:
pip install numpy

首先,您需要安装mkl,因为它是Scipy所需的,您可以在此处下载它。

下载文件 file_name.whl 后进行安装。

C:\Users\****\Desktop\a> pip install mkl_service-1.1.2-cp35-cp35m-win32.whl
Processing c:\users\****\desktop\a\mkl_service-1.1.2-cp35-cp35m-win32.whl 
Installing collected packages: mkl-service    
Successfully installed mkl-service-1.1.2

然后在同一个网站可以下载scipy-0.18.1-cp35-cp35m-win32.whl

注意:根据你的python版本下载相应的文件名.whl,如果你的python版本是32位的python3.5,你应该下载这个版本,并且"win32"是关于你的python版本,而不是你的操作系统版本。

接下来就像这样安装文件名.whl:

C:\Users\****\Desktop\a>pip install scipy-0.18.1-cp35-cp35m-win32.whl
Processing c:\users\****\desktop\a\scipy-0.18.1-cp35-cp35m-win32.whl
Installing collected packages: scipy
Successfully installed scipy-0.18.1

那么只需要做一件事:注释掉一个特定的行,否则当你输入“import scipy”命令时会出现错误信息。所以,请注释掉这行代码。
from numpy._distributor_init import NUMPY_MKL  # requires numpy+mkl

在此文件中:your_own_path\lib\site-packages\scipy__init__.py

然后您就可以使用 SciPy 了 :)

这里告诉您更多关于最后一步的信息。

这里是类似问题的类似答案。


@Tonechas 这个怎么样? - Statham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接