转载地址:http://blog.sina.com.cn/s/blog_7101508c01014h5m.html
安装
Created Wednesday 28 November 2012
安装matplotlib方式有很多,最好的方式就是和你使用的操作系统、你已经安装了的软件以及你想怎么使用它紧密结合。为了避免看这个页面上臃肿的细节,最容易的就是使用以及包含matplotlib的预编译python发行版。Enthought Python Distribution(EPD)不用复杂的操作就能工作,对windows,OS x或者Redhat等操作系统是一个明智的选择。对windows用户还有一个不错的选择就是Python(x, y),它更新频率比较快。这两个包都包含了matplotlib和pylab,和其它一些有用的工具。matplotlib对于主流Linux发行版基本上都已经在其包内了的。所以如果你使用的是Linux,那么你的包管理器很可能会预安装matplotlib。
手动安装预安装包
通用指导
对于一些人而言,并没有选择上面预包含的python发行版,没事,这里还有相当简单通用的安装方式。首先,你需要检查是否在电脑上已经安装了python,如果没有,安装它,python官网下载,但是对于OS X的用户请阅读OS X系统的python版本。
一旦你把python安装好并且成功运行,你就需要安装numpy. numpy提供了高性能的数组结构和数学函数,那正是matplotlib所需要的。你可以做一下测试:
>>> import numpy
>>> print numpy.__version__
matploblib需要1.4版或者更高的numpy。尽管这不是使用matplotlib必需的,但是我们强烈推荐你安装ipython,它是能够matploblib提示的python交互式shell。
接下来就是安装matplotlib.对于OS X和Windows系统我们提供了预安装二进制包在matplotlib下载页面。点击最新发行版的matplotlib包,选择你对应的python版本(如:2.5,2.6或者2.7)和你的系统平台(macosx或者win32).如果你有任何问题,请查看安装文档,使用Google搜索,或者提交问题到邮件列表。
如果你使用的是Debian/Ubuntu,使用下面命令就可以:
$ sudo apt-get install python-matplotlib
安装OSX二进制包的指导可以在FAQ 安装OSX二进制包 里可以找到
一旦你已经安装了ipython,numpy和matplotlib,你就可以使用ipython的"pylab"模式来工作,这个模式有一个像MATLAB一样的环境,它自动为你处理了很多配置细节,所以你可以快速使用:
johnh@flag:~> ipython -pylab
IPython 0.9.0 -- An enhanced Interactive Python.
Welcome to pylab, a matplotlib-based Python environment.
For more information, type 'help(pylab)'.
In [1]: x = randn(10000)
In [2]: hist(x, 100)
注意当在python控制台交互环境测试matplotlib时,有很多问题和用户的接口工具集以及交互环境设置有关,这些问题在在python shell环境使用matplotlib 中讨论了。
在Windows平台安装
如果你已经安装了python,你可能考虑使用加强版的python,如:Enthought Python.它把scipy,numpy,wxpython以及一些有用的包都预安装了。使用加强版的python和matplotlib安装,下面这些后端都会轻松自动安装:agg, wx, wxagg, tkagg, ps, pdf和svg.
对标准python安装,你还需要为matplotlib额外安装numpy.在一些系统你可能还需要下载msvcp71.dll库,你可以在 http://www.dll-files.com/dllindex/dll-files.shtml?msvcp71 上或者其它网站上下载。你需要解压包,然后把dll文件拖入到c:\windows\system32目录下。
所有的图形用户接口后端(GUI backends)可以在windows平台运行,但是TkAgg可能是最好的交互环境使用标准python shell或者ipython.在下载页面的windows安装程序(*.exe)包含了所有你需要的来运行的代码。然后,安装程序却没有包含事例程序。如果你想试试很多matplotlib源发行版中的演示程序,下载zip文件就会发现子目录examples.
使用源安装
如果你有兴趣促进matplotlib的发展,运行最新的源码,或者喜欢自己去用源码编译,其实编译matplotlib源码并不是很困难。从sourceforge上下载最新的tar.gz格式的发行版,或者如果你想要开发matplotlib或者需要最新的已修护bugs版本,下载最新的git版本用git源码安装.
一旦你已经满足了下面的前提条件(主要是:python, numpy, libpng和freetype),你就可以编译matplotlib了:
$ cd matplotlib
$ python setup.py build
$ python setup.py install
我们为setup.py提供了一个setup.cfg的配置文件,它能够为你提供自定义的编译过程。例如,使用哪个默认后端,一些matplotlib自带可选的库是否安装等等。这个文件对于打包matplotlib特别有用。
如果你已经提前安装了必需的库在非标准的地方并且需要告诉matplotlib它们在哪里,修改setupext.py,为你的系统平台添加一条基本路径。如,如果库需要的头文件是/some/path/include/someheader.h,那么就为你的系统平台把/some/path加入到你的基本路径。
编译需求
在安装matplotlib之前,你需要安装一些额外的包。windows用户仅仅需要一两个(python和numpy),因为其它的包都已经编译到了matplotlib的windows二进制中了会从sourceforge上面下载,如果你在OSX上编译,请参看在OSX上编译。如果你在linux上使用包管理器安装依赖时,你可能除了要安装这些库本身还要安装开发版的包(使用-dev后缀)
注意:如果你在debian/ubuntu上,你可以使用下面命令来获得编译matplotlib所有所需的依赖:
$ sudo apt-get build-dep python-matplotlib
如果你在Fedora/RedHat上,你可以获得编译matplotlib所有依赖,首先需要安装yum-builddep,然后使用下面命令:
$ su -c "yum-builddep python-matplotlib"
这里所做的并不是编译matplotlib,而是仅仅为编译安装依赖,使从源码编译变得简单。
matplotlib需要python2.4(或者更高版本,但是不包括python3)
numpy1.4(或者更高版本)为python提供数组支持
libpng1.2(或者更高版本),提供加载和保存PNG文件。libpng需要zlib.如果你是windows用户,你可以忽略这个,因为我们已经把它的支持编译到了matplotlib的一键安装包中了。
freetype1.4(或者更高版本).提供读取TTF字体文件。如果你是windows用户,你也可以忽略这个,同上。
可选项
如果你想安装使用matplotlib的用户接口工具集,这里有一些可选包供你选择。matplotlib可选后端的更多信息和它们提供的功能,请看什么是后端?
tk 8.3或者更高版本。 给TkAgg后端使用的TCL/Tk窗口部件库
pyqt 3.1或者更高版本 给QtAgg后端使用的Qt3窗口部件库的python装饰器
pyqt 4.0或者更高版本 给Qt4Agg后端使用的Qt4窗口部件库的python装饰器
pygtk 2.4或者更高版本 给GTK或者GTKAgg后端使用的GTK窗口部件库python装饰器。
wxpython 2.8或者更高版本 给WX或者WXAgg后端使用的wx窗口部件库的python装饰器
pyfltk 1.0或者更高版本 给FLTKAgg后端使用的FLTK窗口部件库的python装饰器
随matplotlib自带的基础库
agg 2.4 C++渲染引擎。matplotlib静态链接到agg的源码模板,所以它除了matplotlib,不会对你的系统产生任何影响。
pytz 2007g或者更高版本针对python的datetime对象的时区处理。一般,如果你的系统没有安装它,那么matplotlib就会安装它。如果想要覆盖默认安装的,使用setup.cfg来强制或者阻止dateutil的安装。
在OSX上编译
在OSX上编译的解决方案是十分复杂的,因为很多原因,如获得libpng和freetype需求库(darwinports, fink, /usr/X11R6) 以及不同的架构(如x86,ppc, universal)或者不同的OSX版本(如10.4和10.5)。我们推荐你按照我们为OSX发行版的编译方式编译:从tarball上或者git仓库获得源码,然后按照README.osx的指示一步一步的做。