我使用的是Mac OSX 10.8,以前我使用的是macports,但是我改用了brew。
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启动并运行。
答案 0 :(得分:11)
我建议使用软件包管理器(确实是brew,或MacPorts)。以下是几个原因:
如果您使用软件包管理器(MacPorts,brew,...)以后安装依赖于 Matplotlib 的其他程序,软件包管理器将安装它<强>无论强>
如果您通过pip 安装Python软件包,并且pip将其安装在软件包管理器树中(MacPorts,brew,...),软件包管理器可能会抱怨。例如,作为预防措施,MacPorts不想删除pip安装的软件包,因此当MacPort检测到有人走在它的地盘上时,编译就会停止。安装Python软件包的最佳方法是首先检查它们是否由软件包管理器提供,然后只安装pip(如果不是这样的话)。
使用pip进行编译有时会失败其中包管理器(MacPorts,...)没有问题:包管理器只是功能更强大且通用的工具(它们可以很好地与所需的编译库一起使用,实例)。
出于同样的原因,我不建议使用单独的Matplotlib分发:依赖于Matplotlib的brew中的任何程序都会安装它。此外,如果你想要在没有包管理器的情况下安装这样的程序,通常很难使它与Matplotlib的特定发行版一起工作(它们可能需要安装顶层的库等)。
总之,我建议将一个系统用于所有内容(brew,因为这是您选择的),并pip
用于此系统未提供的内容(仅限make确保您使用的点对应于您想要的位置:包管理器的Python库,使用正确的版本,或者操作系统提供的Python,...)。根据我的经验,乘法工具和安装过于混乱,因为各种发行版/包管理器/等等。通常不是为了相互配合。
答案 1 :(得分:1)
由于您需要编译许多这些软件包,因此它不是Mac上最简单的任务。我建议使用像Anaconda这样的分发版。它是免费的,附带您需要的所有东西,并有一个简单的安装程序。它会为您节省很多麻烦,因为所有组件都可以协同工作。
答案 2 :(得分: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,说它是外部托管的,这是一个安全漏洞,将来会被禁用。
答案 3 :(得分:1)
编辑:IMHO virtualenv和virtualenvwrapper现在已经被pyenv和pipenv的精湛组合所取代,这些组合结合起来提供了奇妙的隔离python版本和依赖关系管理。即使您想要使用各种python包,也值得考虑设置虚拟项目。依赖关系得到稳定跟踪,pipenv包含检查包更新和安全问题的功能。我强烈推荐切换。
考虑在专用的virtualenvs中管理你的python包。您可以使用Homebrew安装任何非python依赖项(matplotlib所需的freetype),但您最终可能会在virtualenv
内使用pip管理python包的麻烦更少如果您使用的是系统python,则可以像这样安装matplotlib。我假设您想将virtualenv放在主目录的顶层,因此如果您想在其他地方创建virtualenv,下面列表中的第一行可能会有所不同,您需要相应地调整其余行。 / p>
cd ~
sudo easy install pip
sudo pip install virtualenv
brew install pkg-config freetype
virtualenv matplotlibenvironment
source matplotlibenvironment/bin/activate
如果/usr/local/include/freetype2
存在但/usr/local/include/freetype
不存在,则需要创建一个从freetype2到freetype的符号链接,以防止在安装matplotlib包时出错
cd /usr/local/include
ln -s freetype2 freetype
最后,您可以使用pip安装matplotlib。 pip install matplotlib
从先前创建的virtualenv运行的任何应用程序都可以导入matplotlib。
如果您决定广泛使用virtualenvs,您可能需要查看virtualenvwrapper,它提供了非常好的功能来管理多个virtualenvs并在它们之间切换。