2013-06-03 50 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並在它們之間進行切換。

相關問題