安装“科学Python”环境:OS X 10.7 + Numpy + Scipy + Matplotlib

14
如果我想让这些东西一起工作,我应该做些什么呢?我是否应该把所有东西都移动到Windows 7上(虽然我不太想这样做,但如果这是唯一可靠的方法,那就没办法了)?
以下是发生的事情:我想在运行10.7的Mac上安装numpy/scipy,但遗憾的是numpy ver1.6仅支持python 2.6及以下版本。我尝试安装python 2.6,但是python 2.6无法正常启动;应用程序图标会弹跳并自动退出。(回想起来很奇怪,因为我听说python 2.7和numpy已经随着Mac一起自带了,但当我尝试使用numpy网站上的示例代码时却失败了。)
现在我陷入了困境,最终找到了这个链接:http://stronginference.com/scipy-superpack/ 这个链接安装了numpy 2.0、Scipy(0.11)、Matplotlib(1.2)、iPython(0.12)、Pandas(0.5.1)以及PyMC(2.2 alpha)。
看起来它似乎起作用了,Numpy可以在Python 2.7中使用他们提供的一些示例代码。但是在解决实践问题时,我发现matplotlib完全不再工作了。Python launcher(我认为是...它是python launcher应用程序图标,但名称只显示“python”)在应用程序托盘中弹跳并最终冻结。我担心可能是因为我之前安装了matplotlib 1.1,所以我按照指示清除卸载了matplotlib,然后安装了scipy-superpack。
仍然以与之前相同的方式失败。现在我已经干净地安装了matplotlib 1.1,希望它可以正常工作。但是当我“import pylab”时,它会抛出大量的错误消息。
非常感谢任何建议。

1
虽然这并不能直接帮到你,但如果你又回到了Windows系统,Python(x,y)可以很好地解决这个问题。 - Matt Sweeney
我已经删除了matplotlib 1.1,所以我不能再看到错误消息了。但是它说了一些像“transformer”、“linear”、“fourier”的东西。感谢提到python(x,y);我必须说它看起来非常不错。 - Shinjitsu
stronginference.com的链接似乎已经失效了。 - David Ketcheson
6个回答

13
如果您准备采取长期方法,我建议您使用MacPorts软件包管理器:他们将所有这些软件打包,并且可以直接使用。我成功地在Mac OS X Lion上采用了这种方法。
基本上,您首先安装MacPorts软件包管理器,然后像他们网站上解释的那样安装程序sudo port install python27 py27-numpy py27-scipy py27-matplotlib py27-ipython
MacPorts方法的一个优点是,您不会触及到Mac OS X的原始软件:他们的程序存储在/opt/local/(以及一些位于/Applications/MacPorts/中的程序,例如Gimp或Python的Idle)。安装过程应该将/opt/local/放在您的路径前面,这样您就可以自动使用MacPort的程序而不是默认安装在Mac上的程序。
另一个优点是,MacPorts 会为您自动下载任何其他必要的程序(依赖项)。 他们的软件包非常最新,并且有很多(在撰写本文时超过12k个)。因此,通过MacPorts路线,您将可以访问许多其他程序。

旁注:我在Mac OS X上使用另一个软件包管理器Fink有很长时间的经验。 我发现MacPorts更简单,更健壮,更新更快。 因此,我衷心推荐它。

PS:我认为您还必须使用sudo port select python python27创建一个新的python MacPorts命令,并对IPython执行相同操作:sudo port select ipython ipython27。 这些命令实际上定义了在shell中使用pythonipython命令时将调用哪个版本的Python和IPython。

PPS by JD Long:我尝试在2012年5月16日按照这些说明操作,可能是因为版本或可能是因为我的Mac上的特殊情况,我还必须运行sudo port install py27-tornado py27-zmq才能使完全功能的ipython / notebook堆栈正常工作。


抱歉,安装完成后它应该如何工作?我只是使用了你的安装命令行。 是否需要在脚本文件顶部放置特定的内容,比如“import macports”?我也会去YouTube上寻找答案。但我真正想知道的一件事是,使用macports会不会影响性能?我将运行机器学习算法(使用矩阵)。感谢你迄今为止的帮助!!! - Shinjitsu
只要MacPorts程序出现在您的shell路径中(请参见我的PS),您就不需要做任何特殊的事情即可使用它。在终端中运行which python命令的结果应该是/opt/local/bin/python(这是MacPorts的Python)。 - Eric O. Lebigot
1
@MattSweeney:是啊,我很想知道Homebrew和MacPorts有什么区别。 - Eric O. Lebigot
据我所知,Homebrew并不包含程序的许多版本。这可能会成为一个问题:如果想在发布代码之前测试Python 2.4、2.5、2.6、2.7、3.1和3.2,MacPorts可以提供所有相关的Python版本;这非常方便。 - Eric O. Lebigot
@Shinjitsu:使用MacPorts不会有任何性能损失。你甚至可能会得到更快的程序:它们有多个变体(包括一些可能针对你的使用进行了优化;请查看MacPorts的帮助),并且它们是专门为你的机器编译的。 - Eric O. Lebigot
1
@EOL 终于......剑已经从石头中拔出!我现在有了绘图能力!如果没有您的指导,这将是一个巨大的弹球+迷宫。非常感谢您的帮助! - Shinjitsu

11

另外一个选择是EPD或者EPD Free。两者都能在Windows、Mac OS X或Linux上安装NumPy、SciPy、matplotlib、IPython、Traits和Chaco。EPD是一个包含90多个科学和分析库的厨房水槽版本,可按订阅方式使用(学术界免费)。EPD Free则适用于所有人–商业使用、再分发等都是免费的。


这看起来也很有前途。我有点喜欢他们说它针对性能和兼容性进行了优化。我想通过这个做一些严肃的工作。谢谢! - Shinjitsu

4

在 Lion 或 Mountain Lion 上安装 Python、virtualenv、NumPy、SciPy、matplotlib 和 IPython 指南会引导您完成以下步骤:

  1. 干净安装 Mac OS 10.7 Lion
  2. 安装 Homebrew
  3. 安装 Python (和 pip)
  4. 安装 virtualenv
  5. 安装 NumPy、SciPy 和 matplotlib
  6. 安装 IPython 和 qtconsole

其中有三页清晰、连贯的文本。

(他还有一些有趣的评论和好链接:我可以做 Chartjunk,你也可以 "……一个将在 25 步中实际上破坏信息的教程。")

(注意,截至 2013 年,此指南的当前版本现在在此处:在 Mac OS X 上安装科学 Python )


3

您也可以尝试使用virtualenv打包您的numpy/scipy/matplotlib/...安装。这里描述了使用homebrew一步一步完成它的配方here。对我来说效果很好。希望能帮到您。


2
以下是我依赖的资源,用于解决在Snow Leopard和Lion上获取我的科学Python工具包的故障排除:

HyperJeff博客

我最初使用了这个参考资料来安装Snow Leopard,然后又用于Lion。这是一个非常出色和非常详细的逐步指南,用于在Mac OS X 10.6上安装64位NumPy、SciPY和Matplotlib(尽管它似乎对10.7同样有帮助)。这个“生存指南”有几个优点:

  • 它是一个逐步指南,几乎不做任何假设,因此,例如,第一步是使用适当的环境变量为部署目标、软件包配置路径和cflags配置您的.bash_profile。
  • 它实际上提供了代码——单独的shell命令来检索/下载、配置、构建和安装所有三个软件包及其依赖项;此外,这篇博客文章提供了作者建议在安装之前编辑的所有配置文件的差异。
  • 它经过社区审核——原始帖子中可能有大约100条评论,作者几乎回复了所有这些评论,并在某些情况下修改了他原始指南的文本;此外,评论涵盖了很多边缘案例。
华盛顿大学天文学系

这始于10.3(Panther),但实际上是最新的;他们只是没有在修订是微不足道的情况下修订此文档,例如从10.3到10.7。

这个资源很有用,因为它详细讨论了对我来说似乎总是存在问题的东西——NumPy和SciPy没问题,但Matplotlib失败了,而且它失败了,因为libpng、libjpeg等。

一些(经验性)可能导致NumPy / SciPy / Matplotlib安装失败的原因(都基于个人经验):

libpngfreetypezlib:这些是Matplotlib的依赖项。可能会出现问题的一个原因(但不是唯一原因)是Matplotlib版本高于1.0时默认不支持编译libpng 1.5版本,而开发人员通常在Mac上使用的是这个版本,因为它是随XCode 10.7版本(即4.0-4.2版本)附带的X11中包含的版本。除此之外,最好使用XQuartz而不是XCode提供的Xll。同样,在过去,Apple提供的X11包含了一个损坏的freetype版本(特别是v. 2.3.12)。

Matplotlib的默认配置:退出这些默认设置最简单的方法是编辑make.osx和setup.cfg.template文件,这两个文件都包含在Matplotlib源代码的顶层目录中。HyperJeff博客中的文章(上文提到的)和Supine Sublime博客对这些问题非常有帮助。

Apple提供的快速傅里叶变换库:这里有各种问题;我认为最持久的一个问题是Mac开发工具中提供的FFT库版本缺少Fortran绑定。无论如何,获取最新版本的FFT库标准(FFTW)并从源代码安装是不难的。


1
非常感谢,这也有很大的可能性可以解决问题。我选择macports只是因为我不确定如何很好地实现这些修复,并且我计划将其用于一些真实的工作。但是,如果我遇到另一个matplotlib问题,我会再次回到这里。谢谢! - Shinjitsu

1

这篇文章非常老,但它在谷歌上排名很高,所以我想提供关于Anaconda的建议--

https://www.continuum.io/downloads

只需要运行一个图形化安装程序就可以像安装其他软件一样安装它,不需要操作.bashrc或其他任何内容。它包含numpy、scipy和可能还有sklearn,基本上你想要的Python所有东西 - 而且它不需要root访问/Windows UAC,在某些被严密封锁的企业/政府环境中可能非常重要。适用于Mac和Windows,但从未在Linux上尝试过。

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