Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在mac osx lion中安装MatplotLib_Python_Macos_Matplotlib_Osx Lion - Fatal编程技术网

Python 在mac osx lion中安装MatplotLib

Python 在mac osx lion中安装MatplotLib,python,macos,matplotlib,osx-lion,Python,Macos,Matplotlib,Osx Lion,我试图在Mac OSX Lion中安装matplotlib。尝试使用sourcefourge站点中的二进制文件,但我遇到了以下错误:“matplotlib需要系统Python 2.7才能安装” 我来到终端,输入python——版本及其检查需求 在此之后,我尝试使用pip,但在使用过程中,出现了以下错误: “src/_image.cpp:908:错误:无效使用不完整的类型'struct png_info_def'” 你能告诉我如何安装它吗 非常感谢 编辑:我找到了一种不用安装新版本python的方

我试图在Mac OSX Lion中安装matplotlib。尝试使用sourcefourge站点中的二进制文件,但我遇到了以下错误:“matplotlib需要系统Python 2.7才能安装”

我来到终端,输入python——版本及其检查需求

在此之后,我尝试使用pip,但在使用过程中,出现了以下错误:

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

你能告诉我如何安装它吗

非常感谢

编辑:我找到了一种不用安装新版本python的方法:

我建议使用,它应该考虑依赖性,并且与系统python版本无关

编辑:考虑到对该答案的评论,仅作一些澄清

为什么要使用macports(或其他安装程序)?因为它们处理依赖关系,所以提供了卸载和在版本之间切换的功能(我已经成功地将后者用于gcc和python)。因为默认安装位置不是系统可执行文件位置。重写系统python可能会破坏依赖它的应用程序(在许多Linux发行版中确实如此,在mac OS X上可能不是这样)

什么时候特别有用?当您想安装在Python版本的顶部时,它与系统Python不同,当您有非Python扩展(C、C++、FORTRAN…)时,

缺点是什么?正如@Trond在评论中提到的,如果您对包的默认编译没有意见,那就好了。若您是从源代码构建的,那个么您并没有配置或编译器标志的句柄

macports的一个很好的替代方案是,它似乎给了您更多的控制(从源代码构建)。我不确定它是否已经完全为mac OS X Lion做好准备。

您可以尝试使用“官方”python发行版,苹果可能已经对提供的版本进行了调整。您可以在此处找到2.7版本: 您可能还需要重新安装numpy,请注意:

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

我知道这将花费更多的时间,但我建议从源代码处安装python、numpy和matplotlib,以确保系统的一致性。从错误中可以看出,您可能对libPNG支持有问题。我写了一封信,你可能会觉得有用。它包含如何安装python、numpy、matplotlib和所有必要的依赖项的说明。我知道您正在使用Python2.7,我列出的方向是针对Python2.6.5的,但这将是相同的方法。希望你能成功

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

您可以按照

上的说明进行操作。我遵循了这一点。我被卡住了

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.0dev(在撰写本文时)和path/usr/local/cillar/…

您可以安装Python 2.6版本的Matplotlib,假设Lion中包含Python2.6(Mac OS 10.6“雪豹”中包含py2.5和2.6,请键入Python2.6以了解是否安装了该版本)

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

sudo port install py26-matplotlib

其中py26-。。。(或py25-…、py27-…等)指示它的目标python版本。(检查托盘/端口列表以获得正确的包裹名称,以防我猜错)

@downvoter,是否要发表评论?如果答案有问题,我会很高兴地把它修好或者一起删除。(我没有投票,但我也不认为这是一个答案。)通常在OSX中,您可以使用easy_install安装python软件包。OS X留下了用于用户安装的/Library/Python/$VERSION/site包。使用macports需要在系统上额外安装一个完整的python,这并不可怕。我发现使用macports或fink安装第三方python库非常有用,因为第三方python库可能需要与系统python不同的python版本。更改系统python总是会导致麻烦。使用macports,您可以进行自包含安装,并选择要使用的python版本。我之所以推荐这样做,是因为我曾尝试从dmg安装matplotlib本身,这需要升级系统python,并导致各种各样的问题。macoprts解决方案对我来说很好。我可以使用easy_install/pip在已安装的macport上安装python@juanchopanza:+1,但我想听听您对系统python的评论,即为什么在您的开发环境中使用它是个坏主意。FWIW,我不是MacPorts的粉丝。我建议你在回答中加入这一评论——这会让你的回答更好(更有说服力)——不管怎样,这都是你回答的隐含理由。@juanchopanza:Macports很好,如果你对Python的默认编译感到满意,但是如果你想支持Fortran,Macports将无法满足你所有的依赖性,zlib、NetCDF等。在这一点上,从source.Hi编译是有意义的。谢谢你的建议。我可以安装它,但遇到了一个小问题。python.org版本的2.7是64位的,我们只有32位版本的matplotlib。你知道如何改变python以32位模式工作吗?这个怎么样?我已经试过了。它给出了我发布的关于libpng的错误。我已经试着安装libpng,但结果是一样的。我只是设法让它工作。现在我对show()方法有一个问题,但这并不重要。我用保存图代替。非常感谢。那么你最后做了什么?要使其与32位matplotlib一起工作,这是正确的。唯一的曲