8

我使用的是 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 ?有什么区别吗?

我的目标是让 pandas、ipythone notebook 和 simpleCV 启动并运行。

4

4 回答 4

12

我建议使用包管理器(确实是 brew 或 MacPorts)。以下是几个原因:

  • 如果您使用包管理器(MacPorts、brew、...)稍后安装依赖于Matplotlib的其他程序,包管理器将安装它,无论如何

  • 如果您通过 pip 安装 Python 包,并且 pip 将其安装在包管理器树中(MacPorts、brew 等),包管理器可能会抱怨。例如,作为预防措施,MacPorts 不想删除 pip 安装的软件包,因此当 MacPort 检测到有人在其地盘上行走时,编译会停止。安装 Python 包的最佳方法是首先检查它们是否由包管理器提供,如果不是,则仅使用 pip 安装它们。

  • 在包管理器(MacPorts,...)没有问题的情况下,使用 pip 进行编译有时会失败:包管理器只是更强大和更通用的工具(例如,它们可以很好地与所需的编译库配合使用)。

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

总之,我建议对所有事情使用一个系统(brew,因为这是您选择的),以及pip该系统不提供的东西(只需确保您使用的 pip 对应于您想要的东西:你的包管理器的 Python 库,具有正确的版本,或操作系统提供的 Python,...)。以我的经验,作为各种发行版/包管理器/等,增加工具和安装太麻烦了。通常并不意味着彼此玩得很好。

于 2013-06-03T12:38:29.943 回答
1

Since you need compile many of these packages, it is not the simplest task on the Mac. I would recommend to use a distribution like Anaconda. It is free, comes with all the things you need and has a simple installer. It will save you a lot of hassle because all components work together.

于 2013-06-03T11:20:45.487 回答
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,说它是外部托管的,这是一个安全漏洞,将来会被禁用。

于 2013-10-26T14:29:41.413 回答
1

编辑:恕我直言,virtualenv 和 virtualenvwrapper 现在已被pyenvpipenv的出色组合所取代,它们结合起来提供了出色的隔离 python 版本和依赖项管理。即使您只想玩各种 python 包,也值得考虑设置虚拟项目。依赖关系被稳定地跟踪,并且 pipenv 包括检查包更新和安全问题的功能。我强烈建议切换。


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

如果您使用的是系统 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/freetype2存在但/usr/local/include/freetype不存在,则需要创建从 freetype2 到 freetype 的符号链接,以防止安装 matplotlib 包时出错

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

最后,您可以使用 pip 安装 matplotlib。点安装 matplotlib

从之前创建的 virtualenv 运行的任何应用程序都可以导入 matplotlib。

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

于 2013-11-30T18:06:54.673 回答