在mac osx lion中安装MatplotLib

时间:2011-07-23 12:53:36

标签: python macos matplotlib osx-lion

我试图在Mac OSX Lion中安装matplotlib。试图使用sourcefourge站点中的二进制文件,但我得到了这个错误:“matplotlib需要安装System Python 2.7”。

我去了终端并键入了python --version并检查了要求。

在此之后我尝试使用pip,并且在这样做时出现以下错误:

“src / _image.cpp:908:错误:无效使用不完整类型'struct png_info_def'”

你能告诉我如何安装它的线索吗?

非常感谢。

编辑:我找到了一种方法,无需安装新版本的python:

http://the.taoofmac.com/space/blog/2011/07/24/2222

6 个答案:

答案 0 :(得分:9)

这是因为libpng v1.5(Mac OSX Lion附带)的API发生了变化。这些更改已经被推送到上游,因此您需要从上游存储库进行编译,直到下一个版本。

您可以按照http://jholewinski.wordpress.com/2011/07/21/installing-matplotlib-on-os-x-10-7-with-homebrew/

上的说明操作

答案 1 :(得分:5)

我遵循了page's instructions。我被卡住了

pip install -e git+https://github.com/matplotlib/matplotlib#egg=matplotlib-dev

然后我做了:

git clone https://github.com/matplotlib/matplotlib.git
cd matplotlib
python setup.py build
python setup.py install

输入终端检查我的安装:

python
import matplotlib
print matplotlib.__version__
print matplotlib.__file__

我的版本为0.10.0 dev(截至本文撰写时)和路径/ usr / local / Cellar /...

答案 2 :(得分:4)

你可以尝试使用“官方”python发行版,苹果可能已经调整了提供的版本。你可以在这里找到2.7:http://www.python.org/download/ 你可能不得不重新安装numpy以及后续词:http://sourceforge.net/projects/numpy/files/NumPy/1.6.1/

我建议安装scipy 让我知道它是否有效;)

答案 3 :(得分:3)

我建议使用macports,它应该处理依赖关系,并且不依赖于系统python版本。

编辑:只需进行一些澄清,并考虑对此答案的评论。

为什么要使用macports(或其他安装程序)?因为它们负责依赖,提供卸载和在版本之间切换的功能(我已经成功地将后者用于gcc和python)。并且因为默认安装位置不是系统可执行位置。覆盖系统python可能会破坏依赖它的应用程序(在许多Linux发行版中都是如此,在mac OS X上可能更​​少)。

什么时候特别有用?如果你想安装在与python不同的python版本之上,并且你有非python扩展(C,C ++,Fortran ......)。

有什么不好的方面?正如@Trond在评论中提到的那样,如果您对包的默认编译没有问题,那就太好了。您没有处理配置或编译器标志,就像从源代码构建一样。

macports的一个很好的替代品是fink,这似乎可以让你获得更多的控制权(从源代码构建)。我不确定它是否已经为mac OS X Lion做好了准备。

答案 4 :(得分:1)

我知道这将花费更多的时间,但我会建议从源代码安装python,numpy和matplotlib,以确保您的系统具有一致性。从错误中可能看起来你有libPNG支持的问题。我写了一篇你可能觉得有用的“How to install python dev tools on Mac OSX”。它包含如何安装python,numpy,matplotlib和所有必要依赖项的说明。我知道你正在使用Python 2.7,我列出的方向是针对Python 2.6.5,但它将是相同的方法。希望你能开始工作。

答案 5 :(得分:0)

你可以安装Python 2.6版本的Matplotlib,假设Lion2中包含Python2.6(py2.5& 2.6包含在Mac OS 10.6“Snow Leopard”中 - 尝试输入 python2 .6 以确定是否安装了该版本。)

在MacPorts上,您可以通过以下方式执行此操作:

sudo port install py26-matplotlib

其中py26 -...(或py25 -...,py27 -...等)表示它的用途是哪个python版本。 (检查托盘/端口列表以获取正确的包名称,以防我猜错了)

相关问题