2013-06-03 51 views
8

我使用的是Mac OSX 10.8,以前我使用过macports,但我切换到了brew。我应该使用brew还是pip来安装matplotlib?

Snows-MacBook-Pro:~ Mac$ brew search matplotlib 
samueljohn/python/matplotlib 

Snows-MacBook-Pro:~ Mac$ pip search matplotlib 
matplotlib    - Python plotting package 

所以我的问题很简单。 我应该使用brew还是pip来安装matplotlib? 有什么区别吗?

我的目标是有大熊猫,ipythone笔记本电脑和simpleCV启动和运行。

回答

11

如果brew像MacPorts一样工作,最好通过它。以下列举了几个原因:

  • 如果你用你的包管理器(MacPorts的冲泡,...)要在以后安装依赖Matplotlib增发方案,包管理器将安装不管

  • 如果通过PIP安装Python包,和PIP它安装在你的包管理器树(MacPorts的冲泡,...),包管理器可能会抱怨。例如,作为预防措施,MacPorts不想擦除pip安装的软件包,因此当MacPorts检测到有人在其草地上行走时编译停止。安装Python软件包的最佳方法是首先检查它们是否由软件包管理器提供,然后仅在没有时才使用pip安装它们。

  • 编译与PIP有时会失败其中的软件包管理器(使用MacPorts,...)有没有问题:包经理只是更强大的,通用的工具(它们与所需的编译库发挥很好,例如)。

  • 我不会推荐使用Matplotlib的单独分发,出于同样的原因:任何依赖于Matplotlib的brew的程序都会安装它。此外,如果您不想使用包管理器来安装这样的程序,通常很难使它与特定的Matplotlib发行版一起工作(它们可能需要安装顶层库等)。

总之,我会建议使用一个系统的一切(BREW,因为这是你选择了什么),以及pip的事情,这个系统不提供(只需确保画中画你使用对应于你想要去的地方:你的包管理器的Python库,使用正确的版本,或者操作系统提供的Python,......)。根据我的经验,多种工具和安装过于混乱,因为各种发行版/软件包管理器/等等。通常不是为了互相打好。

+1

快速回答是使用brew。谢谢你的详尽解释,它确实为我澄清了一些事情。 – WebOrCode

+0

谢谢。是的,我真的会建议坚持使用任何包管理器。 (我对文本进行了格式化,以使结论和观点更好地突出。) – EOL

1

由于您需要编译许多这些软件包,因此它不是Mac上最简单的任务。我会建议使用像Anaconda这样的发行版。它是免费的,附带所有你需要的东西,并有一个简单的安装程序。它会为您节省很多麻烦,因为所有组件一起工作。

+0

我已经开始酿造,所以我会尽量完成它。这Anaconda看起来很有前途。在Windows上,我使用[Active Python](http://www.activestate.com/activepython)并对此感到满意。你对[Enthought](https://www.enthought.com)和[Pythonxy](https://code.google.com/p/pythonxy/)有什么看法? – WebOrCode

+0

EPD和Python(x,y)(据我所知只有Windows)的工作方式很好。没有巨大的差异。 EPD和Anaconda更新了一些更新工具等。 –

+0

我最后尝试了[Anaconda](http://continuum.io/downloads.html),但没有成功。它支持[pandas](http://pandas.pydata.org/),但不支持[simpleCV](http://www.simplecv.org/)。 – WebOrCode

1

Brew没有干净的matplotlib端口; brew search matplotlib找到的端口是python2,而不是python3。

但是,Brew的python3安装建议使用pip3来安装python3软件包。这将Python3包安装到/usr/local/lib/python3.3/site-packages。我认为Brew的方法可能比MacPort更好,就像MacPorts一样,我不断地让MacPorts更新不需要更新的python包,并且它跟踪每个独立于python的python版本对我来说都有些困惑。

但是,pip3现在抱怨安装matplotlib,声称它是外部托管的,这是一个安全漏洞,将来会被禁用。

1

考虑在专用的virtualenvs中管理你的python包。您可以使用Homebrew安装任何非python依赖项(matplotlib所需的freetype),但是最终可能会减少使用pip管理您的python包的难度virtualenv

如果您使用的是系统python,则可以安装matplotlib就像这样。我假设你想把virtualenv放在主目录的顶层,所以如果你想在其他地方创建virtualenv,下面列表中的第一行可能会有所不同,并且你需要相应地调整剩余的行。

cd ~ 
sudo easy install pip 
sudo pip install virtualenv 
brew install pkg-config freetype 
virtualenv matplotlibenvironment 
source matplotlibenvironment/bin/activate 

如果存在,但/usr/local/include/freetype/usr/local/include/freetype2不,你将需要从对FreeType2创建符号链接FreeType的防止错误安装matplotlib包时

cd /usr/local/include 
ln -s freetype2 freetype 

最后,你可以使用PIP安装matplotlib。 pip install matplotlib

从先前创建的virtualenv运行的任何应用程序都将能够导入matplotlib。

如果您决定广泛使用virtualenvs,您可能需要看看virtualenvwrapper,它们提供了非常好的功能来管理多个virtualenvs并在它们之间进行切换。

相关问题